#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; } |
English