답안 #720753

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
720753 2023-04-09T09:30:19 Z bin9638 식물 비교 (IOI20_plants) C++17
0 / 100
1 ms 212 KB
#include <bits/stdc++.h>

#ifndef SKY
#include "plants.h"
#endif // SKY

using namespace std;

#define N 1000010
#define ll long long
#define fs first
#define sc second
#define ii pair<ll,int>
#define pb push_back

int k,n,sum[N],a[N];

void init(int cc, vector<int> r)
{
	k=cc;
	n=r.size();
	for(int i=0;i<n;i++)
    {
        a[i]=r[i];
        a[i+n]=r[i];
    }
    for(int i=1;i<n*2;i++)
        sum[i]+=a[i]+sum[i-1];
    //cout<<sum[n-1]<<endl;
}

int compare_plants(int x, int y)
{
    //cout<<x<<" "<<y<<endl;
    if(x<y)
    {
        //cout<<sum[3]<<" "<<(x>0 ? sum[x-1] : 0)<<endl;
        if(sum[y-1]-(x>0 ? sum[x-1] : 0)==0)
            return 1;
        if(sum[y-1]-(x>0 ? sum[x-1] : 0)==y-x)
            return -1;
        if(sum[x+n-1]-(y>0 ? sum[y-1] : 0)==0)
            return -1;
        if(sum[x+n-1]-(y>0 ? sum[y-1] : 0)==(x+n)-y)
            return 1;
    }else
    {
        swap(x,y);
          if(sum[y-1]-(x>0 ? sum[x-1] : 0)==0)
            return -1;
        if(sum[y-1]-(x>0 ? sum[x-1] : 0)==y-x)
            return 1;
        if(sum[x+n-1]-(y>0 ? sum[y-1] : 0)==0)
            return 1;
        if(sum[x+n-1]-(y>0 ? sum[y-1] : 0)==(x+n)-y)
            return -1;
    }
	return 0;
}

#ifdef SKY
int main()
{
    freopen("A.inp","r",stdin);
    freopen("A.out","w",stdout);
    ios::sync_with_stdio(0);
    cin.tie(NULL);
    cout.tie(NULL);
    int n,k;
    cin>>n>>k;
    vector<int>r(n);
    for(int i=0;i<n;i++)
        cin>>r[i];//,cout<<r[i]<<endl;
    init(k,r);
    int q;
    cin>>q;
    while(q--)
    {
        int x,y;
        cin>>x>>y;
        cout<<compare_plants(x,y)<<endl;
    }
    return 0;
}
#endif
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Incorrect 0 ms 212 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Incorrect 0 ms 212 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Incorrect 0 ms 212 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Incorrect 0 ms 212 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Incorrect 0 ms 212 KB Output isn't correct
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Incorrect 1 ms 212 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Incorrect 0 ms 212 KB Output isn't correct
4 Halted 0 ms 0 KB -