Submission #1175362

#TimeUsernameProblemLanguageResultExecution timeMemory
1175362ThylOneSoccer Stadium (IOI23_soccer)C++20
25 / 100
222 ms31896 KiB
#include "soccer.h" #include<bits/stdc++.h> using namespace std; bool a_dans_b(pair<int,int> a, pair<int,int> b){ return b.first<=a.first && a.second<=b.second; } int biggest_stadium(int N, std::vector<std::vector<int>> F) { int empty = 0; int cnt= 0; vector<pair<int,int>> inters; for(int y = 0 ; y < N ; y++){ int flag = 0; pair<int,int> inter = {-1,-1}; for(int x = 0 ; x < N ; x++){ if(F[y][x]==0)empty++; if(flag==0 && F[y][x])continue; if(flag<=1 && F[y][x]==0){ if(flag==0)inter.first=x; inter.second=x; flag=1; cnt++; } if(flag==1 && F[y][x]){ flag=2; } } inters.push_back(inter); } if(cnt!=empty){ return 0; }else{ for(int i = 0 ; i < 2 ; i++){ while(inters.size() && inters.back()==make_pair(-1,-1))inters.pop_back(); reverse(inters.begin(), inters.end()); } bool ascending=true; for(int i = 0 ; i < inters.size()-1;i++){ if(ascending && !a_dans_b(inters[i], inters[i+1])) ascending=false; if(!ascending && !a_dans_b(inters[i+1], inters[i])) return 0; } for(int i = 0 ; i < inters.size();i++){ for(int j=i+1;j<inters.size();j++){ if(!(a_dans_b(inters[i], inters[j]) || a_dans_b(inters[j], inters[i]))) return 0; } } return cnt; } }
#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...