답안 #303227

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
303227 2020-09-20T03:14:48 Z qiangbao 식물 비교 (IOI20_plants) C++14
0 / 100
1 ms 416 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()){
            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);
        }
    }
}

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
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 256 KB Output is correct
2 Incorrect 1 ms 256 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 256 KB Output is correct
2 Incorrect 0 ms 256 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 256 KB Output is correct
2 Incorrect 0 ms 256 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 416 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 256 KB Output is correct
2 Incorrect 1 ms 384 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 256 KB Output is correct
2 Incorrect 1 ms 384 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 256 KB Output is correct
2 Incorrect 1 ms 256 KB Output isn't correct
3 Halted 0 ms 0 KB -