首页 > 代码库 > 题目数据输入中间读入字符
题目数据输入中间读入字符
http://acm.hnust.edu.cn/JudgeOnline/problem.php?cid=1310&pid=1
科大oj上这道题在输入中间读入字符,开始用字符都怎么都不对,看了老师的程序发现用的是字符串。。。
顺便附下代码:
#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cmath>
#include<cstring>
#define inf 1e-4
using namespace std;
const int maxn = 1005;
int f[maxn];
int x[maxn], y[maxn], op[maxn];
int n, d;
int find(int x)
{
return f[x] == x ? x : f[x] = find(f[x]);
}
void Union(int x, int y)
{
int rx = find(x);
int ry = find(y);
if (rx != ry)
f[rx] = ry;
}
int main()
{
while (scanf("%d%d", &n, &d) == 2)
{
memset(op, 0, sizeof(op));
for (int i = 1; i <= n; i++) {
f[i] = i;
scanf("%d%d", &x[i], &y[i]);
}
char c[5];
int p, q;
while (scanf("%s",&c)==1)//字符串!!!
{
if (strcmp(c,"O")==0) {//字符串!!!
scanf("%d", &p);
op[p] = 1;
for (int i = 1; i <= n; i++) {
if (op[i]) {
double dd = sqrt((double)(x[i] - x[p])*(double)(x[i] - x[p]) + (double)(y[i] - y[p])*(double)(y[i] - y[p]));
if (dd<=d)//直接这样比较,之前用精度比较好像总是WA
Union(i, p);
}
}
}
else
{
scanf("%d%d", &p, &q);
if (find(p) == find(q))
printf("SUCCESS\n");
else
printf("FAIL\n");
}
}
}
return 0;
}
题目数据输入中间读入字符
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。