CF CROC-MBTU 2012, Final Round div 2(一)

2014-11-24 09:05:55 · 作者: · 浏览: 1

最近状态好差啊。水题都A不掉了。
特别是B题,一个大水题。就是细节需要注意一下,没想到最后没过数据。。。
然后把代码改了一行就A了。。抓狂啊!!
A题。
[cpp]
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define PI acos(-1.0)
#define Max 2005
#define inf 1<<28
#define LL(x) (x<<1)
#define RR(x) (x<<1|1)
#define FOR(i,s,t) for(int i=(s);i<=(t);++i)
#define ll long long
using namespace std;


int a[10000];
int b[10000];
void solveA()
{
int n;
cin>>n;
int num=0;
for(int i=1;i<=n;i++)
cin>>a[i];
int xx=0;
int pre=0;
for(int i=1;i<=n;i++)
{
if(a[i]<0)
{
xx++;
}
if(xx>=3)
{
b[num++]=i-1-pre;
pre+=b[num-1];
xx=1;
}
if(i==n)
{
b[num++]=i-pre;
}
}
cout< for(int i=0;i cout< cout< }
int main()
{
solveA();
return 0;
}

B,这题是写的又长有臭,恶心死我了。
[cpp]
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define PI acos(-1.0)
#define Max 2005
#define inf 1<<28
#define LL(x) (x<<1)
#define RR(x) (x<<1|1)
#define FOR(i,s,t) for(int i=(s);i<=(t);++i)
#define ll long long
using namespace std;



char a[200];

string ans[10];
void solveB()
{
int n;
cin>>n;
while(n--)
{
string x;
cin>>x;
int l=x.length();
int pos=x.find("::");
if(pos==-1)
{
int num=0;
bool flag=0;
for(int i=0; i {
int index=-1;
if(x[i]==':')
{
if(flag)
cout<<":";
flag=1;
for(int j=0; j<4-num; j++)
cout<<"0";
for(int j=i-num; j cout< num=0;
index=i;
}
else
{
num++;
}
}
cout<<":";
for(int i=0; i<4-num; i++)
cout<<0;
for(int i=l-num; i cout< cout< }
else
{
int sum=0;
int bre=-1;
int num=0;
for(int i=0; i<10; i++)ans[i].clear();
for(int i=0; i {
if(i==pos+1)
{
bre=sum;
continue;
}
if(x[i]==':')
{
for(int j=0; j<4-num; j++)
ans[sum]+='0';
for(int j=i-num; j ans[sum]+=x[j];
sum++;
num=0;
}
else
{
num++;
}
}
if(pos!=l-2)
{
for(int j=0; j<4-num; j++)
ans[sum]+='0';
for(int j=l-num; j ans[sum]+=x[j];
sum++;
}
// for(int i=0;i // cout< if(sum)
{
bool flag=0;

for(int i=0; i {
if(i==bre)
{
for(int j=0; j<8-sum; j++)//就是这里出了问题。
{
if(fl