Cod sursa(job #1709753)

Utilizator twistedstoryUAIC Twisted Story twistedstory Data 28 mai 2016 13:45:18
Problema Politie Scor 0
Compilator cpp Status done
Runda ONIS 2016 - Runda - 2 - ACM ICPC Romanian Programming Contest Marime 0.78 kb
#include<bits/stdc++.h>
using namespace std;

int i,n,m,G,P,aux,x,y,z,q,a[250005],id[250005];
set<int> S[250005];
vector<int> rs;

bool cmp(const int &x,const int &y) {
    return a[x]>a[y];
}

int main()
{
  ifstream cin("politie.in");
  ofstream cout("politie.out");

  ios_base::sync_with_stdio(0); cin.tie(0);

  cin>>n>>m>>G>>P;

  for(i=1;i<=m;++i)
  {
    cin>>x>>y>>z>>q;
    S[z].insert(q); a[z]=max(a[z],q);
  }

  for(i=1;i<=G;++i) id[i]=i;

  sort(id+1,id+G+1,cmp);

  for(i=1;i<=m && P;++i)
  {
    while(P && !S[id[i]].empty())
    {
      rs.push_back(*S[id[i]].begin()); --P;
      S[id[i]].erase(S[id[i]].begin());
    }
  }

  sort(rs.begin(),rs.end());
  reverse(rs.begin(),rs.end());

  for(auto it:rs) cout<<it<<'\n';

 return 0;
}