Submission #1039845

#TimeUsernameProblemLanguageResultExecution timeMemory
1039845amirhoseinfar1385Comparing Plants (IOI20_plants)C++17
0 / 100
4027 ms5456 KiB
#include "plants.h" #include<bits/stdc++.h> using namespace std; const int maxn=300+10; int all[maxn],tr[maxn],res[maxn][maxn],fake[maxn]; int k,n; void init(int k_, std::vector<int> r) { k=k_; n=(int)r.size(); for(int i=0;i<n;i++){ all[i]=r[i]; } } int compare_plants(int x, int y) { for(int i=0;i<n;i++){ fake[i]=all[i]; } for(int i=0;i<n;i++){ vector<int>tof; int vis1=0,vis2=0; for(int j=0;j<n;j++){ if(fake[j]==0){ tof.push_back(j); } // cout<<"ha: "<<i<<" "<<j<<" "<<fake[j]<<endl; } vector<int>tofy; for(int j=(int)tof.size()-1;j>0;j--){ if(tof[j]-tof[j-1]>=k){ tofy.push_back(tof[j]); if(tof[j]==x){ vis1=1; }else if(tof[j]==y){ vis2=1; } } } if((tof[0]-tof.back()+n)%n>=k||(int)tof.size()==1){ tofy.push_back(tof[0]); if(tof[0]==x){ vis1=1; }else if(tof[0]==y){ vis2=1; } } //cout<<x<<" "<<y<<" "<<(int)tofy.size()<<" "<<vis1<<" "<<vis2<<endl; while((int)tofy.size()>0&&(tofy.back()==x||tofy.back()==y)){ tofy.pop_back(); } // cout<<x<<" "<<y<<" "<<(int)tofy.size()<<" "<<vis1<<" "<<vis2<<endl; // if((int)tofy.size()>0){ // cout<<tofy.back()<<endl; // } if(vis1==1&&vis2==1){ return 0; } if((int)tofy.size()==0){ if(vis1){ return 1; }else{ return -1; } } for(int h=1;h<=k-1;h++){ fake[(tofy.back()-h+n)%n]--; } fake[tofy.back()]=-1; } return 1; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...