Kurniady Systems - Tools
Viewing Text Document
Title:
INC 2008 Qual A
Owner: Andrian Kurniady
Last updated on: Tuesday, 15 July 2008
Description:
My solution for INC 2008 qualification problem A.
Content:
#include <stdio.h>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
int ntc;
scanf("%d", &ntc);
while (ntc--){
int n;
scanf("%d", &n);
vector<int> data;
for (int i=0;i<n;i++){
int x;
scanf("%d", &x);
data.push_back(x);
}
sort(data.rbegin(), data.rend());
int abcount = 0;
for (int i=0;i<data.size();i++)
if (data[i]>=500) abcount++;
if (abcount==0) {
puts("0 0 0 0"); continue;}
int maxs = data[0];
int goldcount=1;
while (goldcount<n && data[goldcount]>=maxs-2 && data[goldcount]>=500) goldcount++;
int silvercount=0;
int bronzecount=0;
if (goldcount==2){
if (n>2 && data[2]>=500){
bronzecount=1;
while (goldcount+bronzecount<n && data[goldcount+bronzecount]>=500
&& data[goldcount+bronzecount]>=data[goldcount]-2){
bronzecount++;
}
}
} else if (goldcount>2){
bronzecount=0;
while (goldcount+bronzecount<n && data[goldcount+bronzecount]>=500
&& data[goldcount+bronzecount]>=data[goldcount-1]-2){
bronzecount++;
}
} else {
if (n>1 && data[1]>=500){
silvercount=1;
while (goldcount+silvercount<n && data[goldcount+silvercount]>=500
&& data[goldcount+silvercount]>=data[goldcount]-2){
silvercount++;
}
if (silvercount==1){
bronzecount=1;
while (goldcount+silvercount+bronzecount<n
&& data[goldcount+silvercount+bronzecount]>=500
&& data[goldcount+silvercount+bronzecount]>=data[goldcount+silvercount]-2){
bronzecount++;
}
} else {
bronzecount=0;
while (goldcount+silvercount+bronzecount<n
&& data[goldcount+silvercount+bronzecount]>=500
&& data[goldcount+silvercount+bronzecount]>=data[goldcount+silvercount-1]-2){
bronzecount++;
}
}
}
}
int total = silvercount+goldcount+bronzecount;
int excellencecount = abcount-total;
printf("%d %d %d %d\n", goldcount, silvercount, bronzecount, excellencecount);
}
return 0;
}
Please note that the document shown may be copyrighted.
Please contact the owner of this document for the details.
Valid XHTML and CSS. Powered by Ruby on Rails.