您的位置:首页 > 数据库

MemSQL Start[c]UP 2.0 - Round 1

2014-07-28 10:19 399 查看
A. Eevee http://codeforces.com/contest/452/problem/A

字符串水题

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<cctype>
#include<iostream>
#include<algorithm>
#include<queue>
#include<stack>
#include<vector>
#include<map>
#include<set>
#define mt(a,b) memset(a,b,sizeof(a))
using namespace std;
typedef __int64 LL;
const int inf=0x7fffffff;
const int M=100;
struct point{
int x,y;
};
struct G{
point p[4];
int val;
friend bool operator <(G a,G b){
return a.val>b.val;
}
}g[M];
int dist(point a,point b){
return (a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y);
}
int lg;
void add(int id,int x,int y){
g[lg].p[id].x=x;
g[lg].p[id].y=y;
}
int main(){
int n,m;
while(~scanf("%d%d",&n,&m)){
if(n==0){
printf("0 1\n");
printf("0 %d\n",m);
printf("0 0\n");
printf("0 %d\n",m-1);
continue;
}
if(m==0){
printf("1 0\n");
printf("%d 0\n",n);
printf("0 0\n");
printf("%d 0\n",n-1);
continue;
}
lg=0;
add(0,0,0);
add(1,n,m);
add(2,0,m);
add(3,n,0);
lg++;
add(0,0,0);
add(1,n,m);
add(2,n,0);
add(3,0,m);
lg++;
add(0,1,0);
add(1,n,m);
add(2,0,0);
add(3,n-1,m);
lg++;
add(0,0,1);
add(1,n,m);
add(2,0,0);
add(3,n,m-1);
lg++;
add(0,1,1);
add(1,n,m);
add(2,0,0);
add(3,n-1,m-1);
lg++;
for(int i=0;i<lg;i++){
g[i].val=0;
for(int j=0;j<3;j++){
g[i].val+=dist(g[i].p[j],g[i].p[j+1]);
}
}
sort(g,g+lg);
for(int i=0;i<4;i++){
printf("%d %d\n",g[0].p[i].x,g[0].p[i].y);
}
}
return 0;
}


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