#include<bits/stdc++.h> using namespace std; #define show if(0) unsigned long long t,n,l,a,b,Sa,Sb,SA,SB,p,k,SI; //p - poczatek, k - koniec long long x; bool err; vector<unsigned long long> pot[4],ilosc[4],obec,oczek; int main(){ cin>>t; while(t--){ obec.clear(); oczek.clear(); err=0; Sa=0; Sb=0; SI=0; show cout<<t<<endl; cin>>n; for(int i=0;i<n;i++){ cin>>l>>a>>b; for(int k=0;k<l;k++){ obec.push_back(a); oczek.push_back(b); } Sa+=(a*l); Sb+=(b*l); SI+=l; } sort(obec.begin(),obec.end()); sort(oczek.begin(),oczek.end()); show{ for(int i=0;i<SI;i++){ cout<<obec[i]<<" "; } cout<<endl; for(int i=0;i<SI;i++){ cout<<oczek[i]<<" "; } cout<<endl; } if(obec[0]>oczek[0]||obec[SI-1]<oczek[SI-1]||Sa!=Sb) err=1; else{ x=obec[SI-1]-oczek[SI-1]; obec[SI-1]-=x; show cout<<x<<endl; for(int i=SI-2;i>=0;i--){ if(obec[i]>oczek[i]) x+=obec[i]-oczek[i]; if(obec[i]<oczek[i]){ x-=(oczek[i]-obec[i]); } show cout<<x<<endl; if(x<0){ err=1; break; } } } if(err) cout<<"NIE\n"; else cout<<"TAK\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 62 63 64 65 66 67 68 69 | #include<bits/stdc++.h> using namespace std; #define show if(0) unsigned long long t,n,l,a,b,Sa,Sb,SA,SB,p,k,SI; //p - poczatek, k - koniec long long x; bool err; vector<unsigned long long> pot[4],ilosc[4],obec,oczek; int main(){ cin>>t; while(t--){ obec.clear(); oczek.clear(); err=0; Sa=0; Sb=0; SI=0; show cout<<t<<endl; cin>>n; for(int i=0;i<n;i++){ cin>>l>>a>>b; for(int k=0;k<l;k++){ obec.push_back(a); oczek.push_back(b); } Sa+=(a*l); Sb+=(b*l); SI+=l; } sort(obec.begin(),obec.end()); sort(oczek.begin(),oczek.end()); show{ for(int i=0;i<SI;i++){ cout<<obec[i]<<" "; } cout<<endl; for(int i=0;i<SI;i++){ cout<<oczek[i]<<" "; } cout<<endl; } if(obec[0]>oczek[0]||obec[SI-1]<oczek[SI-1]||Sa!=Sb) err=1; else{ x=obec[SI-1]-oczek[SI-1]; obec[SI-1]-=x; show cout<<x<<endl; for(int i=SI-2;i>=0;i--){ if(obec[i]>oczek[i]) x+=obec[i]-oczek[i]; if(obec[i]<oczek[i]){ x-=(oczek[i]-obec[i]); } show cout<<x<<endl; if(x<0){ err=1; break; } } } if(err) cout<<"NIE\n"; else cout<<"TAK\n"; } return 0; } |