您的位置:首页 > 编程语言 > Go语言

Codeforces GoodBye2013 解题报告

2013-12-31 02:41 357 查看
第一次能和div1的大神们一起比赛,甚是紧张。只做出来三题,先贴一下吧。

Problem A New Year Candles

题意:有若干新蜡烛,用完两个旧蜡烛就能造一个新蜡烛,每个蜡烛能燃烧1小时。问最多能燃烧多少个小时?

思路:这道题直接爆,虽然有点傻但是比赛的时候保险。

代码如下:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <algorithm>
#include <utility>
#include <queue>
#include <stack>
#include <vector>
#define ll long long
#define INF 0x7fffffff
#define eps 1E-6
#define LEN 1000100

using namespace std;

typedef struct {
int x, rat, get;
}P;
P s[LEN];
int n;

bool cmp1(P a, P b){return a.rat<b.rat;}
bool cmp2(P a, P b){return a.x<b.x;}

int main()
{
//    freopen("in.txt", "r", stdin);

while(scanf("%d", &n)!=EOF){
for(int i=0; i<n; i++){
s[i].x = i;
scanf("%d", &s[i].rat);
}
sort(s, s+n, cmp1);
int loc = s[0].rat;
s[0].get = loc;
for(int i=1; i<n; i++){
if(s[i].rat <= loc){
loc++;
}else{
loc = s[i].rat;
}
s[i].get = loc;
}
sort(s, s+n, cmp2);
for(int i=0; i<n; i++){
printf("%d", s[i].get);
if(i!=n-1)printf(" ");
}
printf("\n");
}
return 0;
}


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: