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"); } } |
English