제출 #140210

#제출 시각아이디문제언어결과실행 시간메모리
140210PedroBigMan팀들 (IOI15_teams)C++14
0 / 100
4043 ms37156 KiB
#include "teams.h"
#include <iostream>
#include <vector>
#include <cmath>
#include <algorithm>
#include <string>
using namespace std;
typedef long long int ll;
typedef unsigned long long int ull;
typedef long double ld;
#define REP(i,a,b) for(ll i=a; i<b; i++)
#define pb push_back
#define mp make_pair
#define pl pair<ll,ll>
#define ff first
#define ss second
#define INF ((ll) pow(2,63) -1)
ll insig;
#define In(vecBRO, LENBRO) REP(IBRO,0,LENBRO) {cin>>insig; vecBRO.pb(insig);}
void Out(vector<ll> x) {REP(i,0,x.size()) {cout<<x[i]<<" ";} cout<<endl;}
vector<pl> s0; ll N,M; vector<ll> L; vector<ll> pro; ll limit;ll cnt, last; ll prt;

void init(int Z, int A[], int B[]) 
{
    N=Z;
    REP(i,0,N) {s0.pb(mp((ll) A[i],(ll) B[i]));}
}

int can(int X, int K[]) 
{
    L.clear(); M=X; REP(i,0,M) {L.pb((ll) K[i]);}
    sort(L.begin(),L.end());
    pro.clear();
    vector<pair<pl,ll> > s;
    REP(i,0,N) {s.pb(mp(s0[i],1));}
    REP(i,0,M)
    {
        pro.clear();
        REP(j,0,N)
        {
            if(s[j].ff.ff<=L[i] && s[j].ff.ss>=L[i] && s[j].ss==1)
            {
                pro.pb(s[j].ff.ss); 
            }
        }
        sort(pro.begin(),pro.end()); 
        if(pro.size()<L[i]) {return 0;}
        limit = pro[L[i]-1];
        prt=L[i]-1; 
        while(pro[prt]==limit && prt>=0) {prt--;}
        last=limit-prt;
        cnt=0;
        REP(j,0,N) 
        {
            if(s[j].ff.ff<=L[i] && s[j].ff.ss>=L[i] && s[j].ff.ss<limit && s[j].ss==1)
            {
                s[j].ss=0;
            }
            else if(s[j].ff.ff<=L[i] && s[j].ff.ss>=L[i] && s[j].ff.ss==limit && s[j].ss==1 && cnt<last)
            {
                cnt++; s[j].ss=0;
            }
        }
    }
    return 1;
}

/*int main()
{
    int NS; cin>>NS; int A[NS], B[NS]; REP(i,0,NS){cin>>A[i]>>B[i];} ll MP; cin>>MP;
    int K[MP]; REP(i,0,MP) {cin>>K[i];}
    init(NS,A,B);
    cout<<can(MP,K)<<endl;
    return 0;
}*/

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

teams.cpp: In function 'void Out(std::vector<long long int>)':
teams.cpp:11:33: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
 #define REP(i,a,b) for(ll i=a; i<b; i++)
teams.cpp:20:29:
 void Out(vector<ll> x) {REP(i,0,x.size()) {cout<<x[i]<<" ";} cout<<endl;}
                             ~~~~~~~~~~~~
teams.cpp:20:25: note: in expansion of macro 'REP'
 void Out(vector<ll> x) {REP(i,0,x.size()) {cout<<x[i]<<" ";} cout<<endl;}
                         ^~~
teams.cpp: In function 'int can(int, int*)':
teams.cpp:47:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         if(pro.size()<L[i]) {return 0;}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...