2009-01-07
SRM378 Div1 Easy: TrueStatements
思いついたのをまっすぐ書いた。3'45''ぐらい。
Passed System Test / 244.98点。
#include <vector> #include <queue> using namespace std; #define tr(c,i) for(typeof((c).begin()) i=(c).begin(); i!=(c).end(); i++) #define rep(var,n) for(int var=0;var<(n);var++) class TrueStatements { public: int numberTrue(vector<int> stmts) { vector<int> cnt(51,0); tr(stmts,it) cnt[*it]++; priority_queue<int> pq; rep(i,51){ if(cnt[i]==i) pq.push(i); } return pq.empty()? -1: pq.top(); } };
priority_queueを有意義に使えて気持ちいい。