Niestety, nie byliśmy w stanie w pełni poprawnie wyświetlić tego pliku, ponieważ nie jest zakodowany w UTF-8.
Możesz pobrać ten plik i spróbować otworzyć go samodzielnie.
#include <cstdio> #include <algorithm> using namespace std; class Samochod { public: int x; //poczatkowy x int numer; int wys; bool active; }; bool operator< (Samochod a, Samochod b) { return (a.x < b.x); } int main() { int t; scanf("%d",&t); Samochod pocz[50001], kon[50001]; while(t--) { int n,w; int a,b,c,d; //pomocnicze scanf("%d%d", &n, &w); for (int i=0; i<n; i++) { scanf("%d%d%d%d",&a,&b,&c,&d); pocz[i].x = a; pocz[i].wys = (b>d? b-d : d-b); pocz[i].numer = i; pocz[i].active = true; } for (int i=0; i<n; i++) { scanf("%d%d%d%d",&a,&b,&c,&d); kon[i].x = a; kon[i].wys = (b>d? b-d : d-b); kon[i].numer = i; } sort(pocz,pocz+n); sort(kon,kon+n); //koniec fazy pierwszej bool odp = true; for (int j=0; j <n ; j++) //po kolei ustawiamy samochody { int poz = 0, maksWys=0; while (pocz[poz].numer != kon[j].numer) //szukamy gdzie jest potrzebny nam samochod { if (pocz[poz].active && pocz[poz].wys > maksWys) maksWys = pocz[poz].wys; poz++; } pocz[poz].active = false; if ((maksWys + pocz[poz].wys) > w) odp = false; // z kims po drodze sie nie minie } //czy moge zalozyc ze rozmiary samochodow w obu przypadkach s� identyczne? if (odp) printf("TAK\n"); else printf("NIE\n"); } }
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 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | #include <cstdio> #include <algorithm> using namespace std; class Samochod { public: int x; //poczatkowy x int numer; int wys; bool active; }; bool operator< (Samochod a, Samochod b) { return (a.x < b.x); } int main() { int t; scanf("%d",&t); Samochod pocz[50001], kon[50001]; while(t--) { int n,w; int a,b,c,d; //pomocnicze scanf("%d%d", &n, &w); for (int i=0; i<n; i++) { scanf("%d%d%d%d",&a,&b,&c,&d); pocz[i].x = a; pocz[i].wys = (b>d? b-d : d-b); pocz[i].numer = i; pocz[i].active = true; } for (int i=0; i<n; i++) { scanf("%d%d%d%d",&a,&b,&c,&d); kon[i].x = a; kon[i].wys = (b>d? b-d : d-b); kon[i].numer = i; } sort(pocz,pocz+n); sort(kon,kon+n); //koniec fazy pierwszej bool odp = true; for (int j=0; j <n ; j++) //po kolei ustawiamy samochody { int poz = 0, maksWys=0; while (pocz[poz].numer != kon[j].numer) //szukamy gdzie jest potrzebny nam samochod { if (pocz[poz].active && pocz[poz].wys > maksWys) maksWys = pocz[poz].wys; poz++; } pocz[poz].active = false; if ((maksWys + pocz[poz].wys) > w) odp = false; // z kims po drodze sie nie minie } //czy moge zalozyc ze rozmiary samochodow w obu przypadkach s� identyczne? if (odp) printf("TAK\n"); else printf("NIE\n"); } } |