好久不打CF了,虽然时间点不match,但仍希望可以好好坚持下去,哪怕只做一题也可以,目的是获得成就感。
1.题目链接:
http://codeforces.com/problemset/problem/1154/A
代码:
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
int main()
{
//cout << "Hello world!" << endl;
long long data[4];
long long x1,x2,x3,x4;
while(scanf("%lld%lld%lld%lld",&x1,&x2,&x3,&x4)!=EOF)
{
memset(data,0,sizeof(data));
data[0]=x1;
data[1]=x2;
data[2]=x3;
data[3]=x4;
//for(int i=0;i<)
sort(data,data+4);
//cout<<data[0]<<endl;
//cout<<data[3]<<endl;
cout<<data[3]-data[0]<<" "<<data[3]-data[1]<<" "<<data[3]-data[2]<<endl;
}
return 0;
}
2.题目链接:
http://codeforces.com/problemset/problem/1154/B
代码:
#include <iostream>
#include <cstdio>
#include <vector>
#include <set>
using namespace std;
//Problem:522B
int main()
{
//cout << "Hello world!" << endl;
int n;
int data;
vector<int> vec;
while(scanf("%d",&n)!=EOF)
{
vec.clear();
for(int i=0; i<n; i++)
{
scanf("%d",&data);
vec.push_back(data);
}
//利用set集合把vector中的元素去重
set<int> st(vec.begin(), vec.end());
vec.assign(st.begin(), st.end());
/*
//使用迭代器的方法遍历vector数组
vector<int>::iterator it;
for (it = vec.begin(); it != vec.end(); it++)
cout << *it<<endl;
*/
if(vec.size()==2)
{
int kkk1;
int kkk2;
if((vec[0]+vec[1])%2==0)
{
kkk1=vec[1]-vec[0];
kkk2=vec[1]-(vec[0]+vec[1])/2;
if(kkk1>kkk2)
{
cout<<kkk2<<endl;
}
else
{
cout<<kkk1<<endl;
}
}
else
{
kkk1=vec[1]-vec[0];
cout<<kkk1<<endl;
}
}
else
{
int sum=0;
int kkk1;
int kkk2;
//应用数组的方式遍历vector数组
for(int i=0;i<vec.size();i++)
{
sum+=vec[i];
}
if(sum%vec.size()==0)
{
kkk1=sum/vec.size()-vec[0];
cout<<kkk1<<endl;
}
else
{
cout<<"-1"<<endl;
}
}
}
return 0;
}
昨天晚上只做了两道容易题,都是数学的,过程还比较顺利,还学习了一下vector数组的用法,之前正式比赛时还因为觉得麻烦不想去学,现在来看是多么的简单又必要。所以每一步都算数,请好好努力吧!