제출 #1026884

#제출 시각아이디문제언어결과실행 시간메모리
1026884MarwenElarbi곤돌라 (IOI14_gondola)C++17
40 / 100
47 ms6484 KiB
#include <bits/stdc++.h>
#include "gondola.h"
using namespace std;
#define pb push_back
#define se second
#define fi first
const int nax=5e5+5;
const int MOD=1e9+9;
int valid(int n, int inputSeq[])
{
    vector<pair<int,int>> tab;
    bool test=true;
    set<int> stt;
    for (int i = 0; i < n; ++i)
    {
        stt.insert(inputSeq[i]);
    }
    test&=(stt.size()==n);
    int cnt=-1e9;
    for (int i = 0; i < n; ++i)
    {
        if(inputSeq[i]<=n){
            cnt=(inputSeq[i]-(i+1)+n)%n;
        }
    }
    if(cnt==-1e9) return test;
    for (int i = 0; i < n; ++i)
    {
        if(inputSeq[i]<=n){
            if((inputSeq[i]-(i+1)+n)%n!=cnt) test=false;
        }
    }
    return test;
}
 
//----------------------
 
int replacement(int n, int gondolaSeq[], int replacementSeq[])
{
   for (int i = 0; i < n; ++i)
   {
       if(gondolaSeq[i]<=n){

       }
   }
}
 
//----------------------
 
int countReplacement(int n, int inputSeq[])
{
    long long cur=1;
    set<int> st;
    if(!valid(n,inputSeq)) return 0;
    for (int i = 0; i < n; ++i)
    {
        st.insert(i);
    }
    for (int i = 0; i < n; ++i)
    {
        if(inputSeq[i]<=n) st.erase(inputSeq[i]);
    }
    if(st.size()==0) return 1;
    set<int> stt;
    for (int i = 0; i < n; ++i)
    {
        if(inputSeq[i]>n) stt.insert(inputSeq[i]);
    }
    int cnt=n;
    while(stt.size()){
        //cout <<cnt<<endl;
        for (int i = cnt; i < *stt.begin()-1; ++i)
        {
            cur=(1ll*cur*(int)stt.size())%MOD;
        }
        cnt=*stt.begin();
        stt.erase(*stt.begin());
    }
    return cur;
}

컴파일 시 표준 에러 (stderr) 메시지

gondola.cpp: In function 'int valid(int, int*)':
gondola.cpp:18:22: warning: comparison of integer expressions of different signedness: 'std::set<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   18 |     test&=(stt.size()==n);
      |            ~~~~~~~~~~^~~
gondola.cpp: In function 'int replacement(int, int*, int*)':
gondola.cpp:46:1: warning: no return statement in function returning non-void [-Wreturn-type]
   46 | }
      | ^
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...