USACO 1.3 Barn Repair (barn1)
来源:互联网 发布:网络系统工程师考试 编辑:程序博客网 时间:2024/05/16 13:45
/*ID: haolink1PROG: barn1LANG: C++*///#include <iostream>#include <fstream>#include <list>using namespace std;bool CompareInterval(int free_interval_1, int free_interval_2){ if(free_interval_1 <= free_interval_2) return true; else return false;}// by increasement order, T(n)=O(n^2)void InsertionSort(int* array, int length) { for (int j = 1; j < length; j++) { int key = array[j]; int i = j - 1; while (i >= 0 && array[i] > key) { array[i + 1] = array[i]; i--; } array[i + 1] = key; }}int main(){ ifstream fin("barn1.in"); int max_boards = 0; int total_stalls = 0; int occupied_stalls = 0; fin >> max_boards; fin >> total_stalls; fin >> occupied_stalls; //count the number of serial occupied-stall interval int serial_interval_num = 0; list<int> free_intervals; int cur_occupied = 0; int prev_occupied = 0; int* occupied_stall_position = new int[occupied_stalls]; for(int i = 0; i < occupied_stalls; i++){ fin >> occupied_stall_position[i]; } //sort the position in ascending order InsertionSort(occupied_stall_position,occupied_stalls); for(int i = 0; i < occupied_stalls; i++){ cur_occupied = occupied_stall_position[i]; //note the way to count the serial interval number, while cur_occupied is exception; if(cur_occupied == 1 || prev_occupied+1 != cur_occupied){ serial_interval_num++; if(prev_occupied != 0)//the free interval made of the free stall before the first occupied stall is meaningless free_intervals.push_back(cur_occupied - prev_occupied -1); } prev_occupied = cur_occupied; } int stalls_blocked = occupied_stalls; if(serial_interval_num > max_boards){ free_intervals.sort(CompareInterval); for(int i = 0; i < serial_interval_num - max_boards; i++){ stalls_blocked += free_intervals.front(); free_intervals.pop_front(); } } ofstream fout("barn1.out"); fout << stalls_blocked <<endl; delete[] occupied_stall_position; return 0;}
0 0
- USACO 1.3 Barn Repair (barn1)
- USACO 1.3.2 Barn Repair (barn1)
- USACO: 1.3.2 Barn Repair(barn1) 解析
- USACO 1.3-Barn Repair
- USACO 1.3 Barn Repair
- USACO 1.3 Barn Repair
- USACO--1.3Barn Repair
- USACO 1.3 Barn Repair
- USACO 1.3-Barn Repair
- USACO1.3.2 Barn Repair (barn1)
- USACO1.3.2 Barn Repair (barn1)
- [USACO]Section 1.3 Barn Repair
- [USACO 1.3.2] Barn Repair
- USACO 1.3.2 Barn Repair
- USACO 1.3.2 Barn Repair
- USACO Section 1.3 Barn Repair
- USACO Section 1.3 Barn Repair
- usaco 1.3.2 Barn Repair
- IRP_MN_START_DEVICE分发例程中的前进和等待IRP总结
- 3D拓扑自动布局之Web Workers篇
- 【json】json_encode() 函数介绍
- 在VC++程序中调用DOS命令例子
- LLVM(一):简单介绍
- USACO 1.3 Barn Repair (barn1)
- 编程珠玑--位图在排序中的使用
- three.js学习点滴(1) — 创建场景
- VS2008反汇编小解(转)
- Android之drawable state各个属性详解
- USACO 1.3 Calf Flac (calfflac)
- 判断一个单链表是否有环及环的链接点(转)
- c#中属性和字段的区别?
- map