제출 #1053253

#제출 시각아이디문제언어결과실행 시간메모리
1053253user736482경찰관과 강도 (BOI14_coprobber)C++17
16 / 100
26 ms1800 KiB
#include<bits/stdc++.h>
#include<coprobber.h>
using namespace std;

vector<int> sasiad[507];
int akpos;
int licz;
int n,lastr=-1;
int start(int N,bool a[][500]){
    n=N;
    for(int i=0;i<n;i++){
        for(int j=i+1;j<n;j++){
            if(a[i][j]){
                sasiad[i].push_back(j);
                sasiad[j].push_back(i);
                licz++;
            }
        }
    }
    return 0;
}
int nextMove(int r){
    if(licz==n-1){
        bool odw[507];
        int pop[507];
        for(int i=0;i<507;i++)
            odw[i]=0;
        odw[akpos]=1;
        pop[akpos]=akpos;
        queue<int>q;
        q.push(akpos);
        while(!q.empty()){
            int pom=q.front();
            q.pop();
            for(int i=0;i<sasiad[pom].size();i++){
                if(!odw[sasiad[pom][i]]){
                    odw[sasiad[pom][i]]=1;
                    pop[sasiad[pom][i]]=pom;
                    q.push(sasiad[pom][i]);
                }
            }
        }
        while(pop[r]!=akpos)
            r=pop[r];
        akpos=r;
        return r;
    }
    for(int i=0;i<sasiad[akpos].size();i++){
        if(sasiad[akpos][i]==r){
            return r;
        }
    }
    for(int i=0;i<sasiad[akpos].size();i++){
        if(sasiad[akpos][i]==r+5 || sasiad[akpos][i]==r-5 || sasiad[akpos][i]==r-3 || sasiad[akpos][i]==r+3){
            akpos=sasiad[akpos][i];
            return akpos;
        }
    }
    bool odw[507];
        int pop[507];
        for(int i=0;i<507;i++)
            odw[i]=0;
        odw[akpos]=1;
        pop[akpos]=akpos;
        queue<int>q;
        q.push(akpos);
        while(!q.empty()){
            int pom=q.front();
            q.pop();
            for(int i=0;i<sasiad[pom].size();i++){
                if(!odw[sasiad[pom][i]]){
                    odw[sasiad[pom][i]]=1;
                    pop[sasiad[pom][i]]=pom;
                    q.push(sasiad[pom][i]);
                }
            }
        }
        while(pop[r]!=akpos)
            r=pop[r];
        akpos=r;
        return r;
}

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

coprobber.cpp: In function 'int nextMove(int)':
coprobber.cpp:35:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   35 |             for(int i=0;i<sasiad[pom].size();i++){
      |                         ~^~~~~~~~~~~~~~~~~~~
coprobber.cpp:48:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   48 |     for(int i=0;i<sasiad[akpos].size();i++){
      |                 ~^~~~~~~~~~~~~~~~~~~~~
coprobber.cpp:53:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   53 |     for(int i=0;i<sasiad[akpos].size();i++){
      |                 ~^~~~~~~~~~~~~~~~~~~~~
coprobber.cpp:70:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   70 |             for(int i=0;i<sasiad[pom].size();i++){
      |                         ~^~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...