#include <iostream> #include <list> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ using namespace std; /*autor: Agnieszka Klich*/ int main(int argc, char** argv) { long long int liczbaDostaw; cin >> liczbaDostaw; int typ; long long int polozenie, czas; list <long long int> dostawaNaPolnoc;//typ 1 list <long long int> dostawaNaWschod; // typ 2 for (long long int i=0; i<liczbaDostaw; ++i){ cin >> typ; cin >> polozenie; cin >> czas; if(typ==1) dostawaNaPolnoc.push_back(polozenie-czas); else dostawaNaWschod.push_back(polozenie-czas); } dostawaNaPolnoc.sort(); dostawaNaWschod.sort(); long long int wynik = 0, ileTakichSamych=0; list<long long int>::iterator itWschod = dostawaNaWschod.begin(); list<long long int>::iterator itPolnoc = dostawaNaPolnoc.begin(); do{ // cout << *itPolnoc << " " << *itWschod << endl; if(*itPolnoc>*itWschod){ itWschod++; wynik+=ileTakichSamych; ileTakichSamych = 0; // cout << "polnoc wieksza"<< endl; } else if (*itPolnoc<*itWschod){ itPolnoc++; wynik+=ileTakichSamych; ileTakichSamych = 0; // cout << "wschod wiekszy"<< endl; } else{ itPolnoc++; itWschod++; ileTakichSamych++; // cout << "rowne"<< endl; } } while(itPolnoc!=dostawaNaPolnoc.end() && itWschod!=dostawaNaWschod.end()); wynik+=ileTakichSamych; cout << wynik << "\n"; return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | #include <iostream> #include <list> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ using namespace std; /*autor: Agnieszka Klich*/ int main(int argc, char** argv) { long long int liczbaDostaw; cin >> liczbaDostaw; int typ; long long int polozenie, czas; list <long long int> dostawaNaPolnoc;//typ 1 list <long long int> dostawaNaWschod; // typ 2 for (long long int i=0; i<liczbaDostaw; ++i){ cin >> typ; cin >> polozenie; cin >> czas; if(typ==1) dostawaNaPolnoc.push_back(polozenie-czas); else dostawaNaWschod.push_back(polozenie-czas); } dostawaNaPolnoc.sort(); dostawaNaWschod.sort(); long long int wynik = 0, ileTakichSamych=0; list<long long int>::iterator itWschod = dostawaNaWschod.begin(); list<long long int>::iterator itPolnoc = dostawaNaPolnoc.begin(); do{ // cout << *itPolnoc << " " << *itWschod << endl; if(*itPolnoc>*itWschod){ itWschod++; wynik+=ileTakichSamych; ileTakichSamych = 0; // cout << "polnoc wieksza"<< endl; } else if (*itPolnoc<*itWschod){ itPolnoc++; wynik+=ileTakichSamych; ileTakichSamych = 0; // cout << "wschod wiekszy"<< endl; } else{ itPolnoc++; itWschod++; ileTakichSamych++; // cout << "rowne"<< endl; } } while(itPolnoc!=dostawaNaPolnoc.end() && itWschod!=dostawaNaWschod.end()); wynik+=ileTakichSamych; cout << wynik << "\n"; return 0; } |