제출 #1020783

#제출 시각아이디문제언어결과실행 시간메모리
1020783vjudge1Teleporters (IOI08_teleporters)C++17
75 / 100
658 ms65536 KiB
#include<bits/stdc++.h>
using namespace std;
map<int,int> go,tele;
bitset<2000100>vis;
set<int>st;
int docycle(int n){
    int x=0;
    while(!vis[n])  
        x++,vis[n]=1,n=go[n];
    return x;
}
int main(){
    int n,m;
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        int x,y;
        cin>>x>>y;
        tele[x]=y;
        tele[y]=x;
        st.insert(x);
        st.insert(y);
    }
    st.insert(0);
    st.insert(2e6+1);
    tele[2e6+1]=2e6+1;
    for(auto i:st){
        if(i>2e6)break;
        go[i]=tele[*st.upper_bound(i)];
    }
    int x=0,y=0;
    while(x<=2e6)
        y++,vis[x]=1,x=go[x];
    priority_queue<int>pq;
    for(auto i:st) if(!vis[i])
        pq.push(docycle(i));
    if(m>=pq.size())
        cout<<(n+m)*2-(n+m&1);
    else {
        while(m--)
            y+=2+pq.top(),pq.pop();
        cout<<y-1;
    }
}

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

teleporters.cpp: In function 'int main()':
teleporters.cpp:36:9: warning: comparison of integer expressions of different signedness: 'int' and 'std::priority_queue<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   36 |     if(m>=pq.size())
      |        ~^~~~~~~~~~~
teleporters.cpp:37:25: warning: suggest parentheses around '+' in operand of '&' [-Wparentheses]
   37 |         cout<<(n+m)*2-(n+m&1);
      |                        ~^~
#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...
#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...