Submission #1178423

#TimeUsernameProblemLanguageResultExecution timeMemory
1178423guagua0407Comparing Plants (IOI20_plants)C++20
0 / 100
0 ms328 KiB
#include "plants.h"
//#include "grader.cpp"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pii pair<int,int>
#define f first
#define s second
#define all(x) x.begin(),x.end()
#define _ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);

namespace{
    vector<vector<bool>> big;
}

void init(int k, std::vector<int> r) {
    int n=(int)r.size();
    vector<bool> used(n);
    big=vector<vector<bool>>(n,vector<bool>(n));
    for(int t=0;t<n;t++){
        int pos=-1;
        for(int i=0;i<n;i++){
            if(used[i] or r[i]!=0) continue;
            bool tf=true;
            for(int j=i-k+1;j<i;j++){
                int J=(j+n)%n;
                if(!used[J] and r[J]==0){
                    tf=false;
                    break;
                }
            }
            if(tf){
                pos=i;
                break;
            }
        }
        used[pos]=true;
        for(int j=pos-k+1;j<pos;j++){
            int J=(j+n)%n;
            if(used[J]) continue;
            big[pos][J]=true;
            r[J]--;
        }
    }
    for(int k=0;k<n;k++){
        for(int i=0;i<n;i++){
            for(int j=0;j<n;j++){
                if(big[i][k]&big[k][j]) big[i][j]=true;
            }
        }
    }
	return;
}

int compare_plants(int x, int y) {
    if(big[x][y]) return 1;
    else if(big[y][x]) return -1;
    else return 0;
}
#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...