Submission #303228

# Submission time Handle Problem Language Result Execution time Memory
303228 2020-09-20T03:16:00 Z qiangbao Comparing Plants (IOI20_plants) C++14
14 / 100
4000 ms 11092 KB
#include <iostream>
#include <vector>
#include <set>
#include "plants.h"

#define pb push_back

using namespace std;

int n;

set<int> zero;
set<int> cur;
set<int>:: iterator it, it2;

int ans[200001];

void init(int k, vector<int> r)
{
    int i, j;
    n=r.size();
    
    for(i=0;i<n;i++)
        r[i]=k-1-r[i];
    for(i=0;i<n;i++)
        if(r[i]==0)
            zero.insert(i), zero.insert(i+n);
    for(i=1;i<=n;i++){
        it=zero.begin();
        while(it!=zero.end() && *it<n){
            it2=it, it2++;
            if(*it2-*it>=k){
                int f=*it2;
                if(f>=n) f-=n;
                ans[f]=i;
                zero.erase(f), zero.erase(f+n);
                for(j=0;j<k;j++){
                    int f2=(f-j);
                    if(f2<0)
                        f2+=n;
                    r[f2]--;
                    if(r[f2]==0)
                        zero.insert(f2), zero.insert(f2+n);
                }
                break;
            }
            it=zero.lower_bound(*it+k), it--;
        }
    }
}

int compare_plants(int x, int y)
{
    if(ans[x]==ans[y])
        return 0;
    else if(ans[x]>ans[y])
        return 1;
    return -1;
}

//int main()
//{
//    int nn;
//    vector<int> in, in2;
//    int i, j;
//
//    cin >> nn;
//    for(i=0;i<nn;i++){
//        int x;
//        cin >> x;
//        in.pb(x), in2.pb(0);
//    }
//
//    for(i=0;i<nn;i++)
//        for(j=1;j<4;j++){
//            int f=(i+j)%nn;
//            if(in[i]<in[f])
//                in2[i]++;
//        }
//
//    init(4, in2);
//    for(i=0;i<n;i++)
//        cout << ans[i] << " ";
//    cout << endl;
//
//    return 0;
//}

//7
// 4 3 5 7 6 1 2
# Verdict Execution time Memory Grader output
1 Correct 0 ms 256 KB Output is correct
2 Correct 0 ms 256 KB Output is correct
3 Correct 0 ms 256 KB Output is correct
4 Incorrect 0 ms 256 KB Output isn't correct
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 256 KB Output is correct
2 Correct 0 ms 256 KB Output is correct
3 Correct 1 ms 256 KB Output is correct
4 Correct 0 ms 256 KB Output is correct
5 Correct 1 ms 256 KB Output is correct
6 Correct 6 ms 384 KB Output is correct
7 Correct 152 ms 3192 KB Output is correct
8 Correct 2 ms 384 KB Output is correct
9 Correct 7 ms 512 KB Output is correct
10 Correct 144 ms 3192 KB Output is correct
11 Correct 120 ms 3192 KB Output is correct
12 Correct 121 ms 3832 KB Output is correct
13 Correct 174 ms 3192 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 256 KB Output is correct
2 Correct 0 ms 256 KB Output is correct
3 Correct 1 ms 256 KB Output is correct
4 Correct 0 ms 256 KB Output is correct
5 Correct 1 ms 256 KB Output is correct
6 Correct 6 ms 384 KB Output is correct
7 Correct 152 ms 3192 KB Output is correct
8 Correct 2 ms 384 KB Output is correct
9 Correct 7 ms 512 KB Output is correct
10 Correct 144 ms 3192 KB Output is correct
11 Correct 120 ms 3192 KB Output is correct
12 Correct 121 ms 3832 KB Output is correct
13 Correct 174 ms 3192 KB Output is correct
14 Correct 906 ms 3480 KB Output is correct
15 Execution timed out 4066 ms 5368 KB Time limit exceeded
16 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 384 KB Output is correct
2 Correct 0 ms 256 KB Output is correct
3 Correct 75 ms 3320 KB Output is correct
4 Execution timed out 4011 ms 11092 KB Time limit exceeded
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 256 KB Output is correct
2 Correct 1 ms 288 KB Output is correct
3 Incorrect 0 ms 256 KB Output isn't correct
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 288 KB Output is correct
2 Correct 0 ms 256 KB Output is correct
3 Incorrect 0 ms 256 KB Output isn't correct
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 256 KB Output is correct
2 Correct 0 ms 256 KB Output is correct
3 Correct 0 ms 256 KB Output is correct
4 Incorrect 0 ms 256 KB Output isn't correct
5 Halted 0 ms 0 KB -