#include <iostream> using namespace std; int main (){ std::ios_base::sync_with_stdio(0); int n; cin>>n; int wag[400002]; for(int i=0; i<400002; i++) { if(i<n) cin>>wag[i]; else wag[i]=0; } int f=n; int q; cin>>q; int num[q]; long long swa[q]; long long kwa[q]; long long wwa[q]; for(int i=0; i<q; i++) { cin>>num[i]; if(num[i]==1) { cin>>swa[i]; cin>>kwa[i]; wwa[i]=0; } else { swa[i]=0; kwa[i]=0; cin>>wwa[i]; } } for(int i=0; i<q; i++) { int c=0; if(num[i]==1) { if(swa[i]>kwa[i]||swa[i]==kwa[i]) { cout<<0<<endl; goto exit; } else { while(swa[i]<kwa[i]) { long long pwa[400002]; for(int h=0; h<400002; h++) { pwa[h]=wag[h]; } long long g=0; for(int r=0; i<q; r++) { if(g<pwa[r]) g=pwa[r]; } if(g==0) { cout<<-1<<endl; goto exit; break; } for(int j=0; i<q; j++) { if(pwa[j]=g) { pwa[j]=0; break; } j++; } swa[i]=swa[i]+g; c++; } } cout<<c<<endl; } exit: if(num[q]==2) { wag[f]=wwa[i]; f++; } if(num[q]==3) { for(int b=0; b<400002; b++) { if(wag[b]==wwa[i]) { wag[b]=0; break; } } } } 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 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | #include <iostream> using namespace std; int main (){ std::ios_base::sync_with_stdio(0); int n; cin>>n; int wag[400002]; for(int i=0; i<400002; i++) { if(i<n) cin>>wag[i]; else wag[i]=0; } int f=n; int q; cin>>q; int num[q]; long long swa[q]; long long kwa[q]; long long wwa[q]; for(int i=0; i<q; i++) { cin>>num[i]; if(num[i]==1) { cin>>swa[i]; cin>>kwa[i]; wwa[i]=0; } else { swa[i]=0; kwa[i]=0; cin>>wwa[i]; } } for(int i=0; i<q; i++) { int c=0; if(num[i]==1) { if(swa[i]>kwa[i]||swa[i]==kwa[i]) { cout<<0<<endl; goto exit; } else { while(swa[i]<kwa[i]) { long long pwa[400002]; for(int h=0; h<400002; h++) { pwa[h]=wag[h]; } long long g=0; for(int r=0; i<q; r++) { if(g<pwa[r]) g=pwa[r]; } if(g==0) { cout<<-1<<endl; goto exit; break; } for(int j=0; i<q; j++) { if(pwa[j]=g) { pwa[j]=0; break; } j++; } swa[i]=swa[i]+g; c++; } } cout<<c<<endl; } exit: if(num[q]==2) { wag[f]=wwa[i]; f++; } if(num[q]==3) { for(int b=0; b<400002; b++) { if(wag[b]==wwa[i]) { wag[b]=0; break; } } } } return 0; } |