제출 #619348

#제출 시각아이디문제언어결과실행 시간메모리
619348amin팀들 (IOI15_teams)C++14
34 / 100
4082 ms14504 KiB
#include "teams.h"
#include<bits/stdc++.h>

using namespace std;
vector<pair<long,long> >v;
vector<pair<long,long> >vv;
long p[200002];
long o[200002];
void init(int N, int A[], int B[]) {
    for(long i=0;i<N;i++)
    {
        vv.push_back({A[i],B[i]});
        o[B[i]]--;
        vv.push_back({B[i],1000000000});

    }

}

int can(int M, int K[]) {
    v=vv;
    for(long i=0;i<200002;i++)
    {
        p[i]=o[i];
    }
    for(long i=0;i<M;i++)
    {
        v.push_back({K[i],999999999});
    }
    sort(v.begin(),v.end());
    long c=0;
    priority_queue<long>pq;
	for(long i=0;i<v.size();i++)
    {
        if(v[i].second==999999999)
        {
           // cout<<c<<' ';
            c-=v[i].first;
           // cout<<c<<endl;

            if(c<0)
            {
                return 0;
            }
               for(long y=0;y<v[i].first;y++)
               {
                   p[-pq.top()]++;
                   pq.pop();
               }

        }else
        if(v[i].second==1000000000)
        {
            if(p[v[i].first]<0)
            {
                pq.pop();
                p[v[i].first]++;
                c--;
            }
        }else
        {
            pq.push(-v[i].second);
            c++;
        }


    }
    return 1;
}

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

teams.cpp: In function 'int can(int, int*)':
teams.cpp:33:16: warning: comparison of integer expressions of different signedness: 'long int' and 'std::vector<std::pair<long int, long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   33 |  for(long i=0;i<v.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...