QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#837673#3075. FactorywtcAC ✓8ms3896kbC++141011b2024-12-30 11:28:102024-12-30 11:28:11

Judging History

This is the latest submission verdict.

  • [2024-12-30 11:28:11]
  • Judged
  • Verdict: AC
  • Time: 8ms
  • Memory: 3896kb
  • [2024-12-30 11:28:10]
  • Submitted

answer

#include<bits/stdc++.h>
#define fo(i,l,r) for(int i=(l);i<=(r);++i)
#define fd(i,l,r) for(int i=(l);i>=(r);--i)
#define fu(i,l,r) for(int i=(l);i<(r);++i)
#define ll long long
using namespace std;
const int N=1007;
int n,f[N],s[N];
struct node{
	int x,y,r;
}p[N];
int find(int x)
{
	if(x==f[x]) return x;
	int u=find(f[x]);s[x]^=s[f[x]];
	return f[x]=u;
}
void work()
{
	scanf("%d",&n);
	fo(i,1,n) scanf("%d%d%d",&p[i].x,&p[i].y,&p[i].r);
	fo(i,1,n) f[i]=i,s[i]=0;
	fo(i,1,n) fo(j,i+1,n) if((p[i].x-p[j].x)*(p[i].x-p[j].x)+(p[i].y-p[j].y)*(p[i].y-p[j].y)==(p[i].r+p[j].r)*(p[i].r+p[j].r))
	{
		int u=find(i),v=find(j);
		if(u<v) swap(u,v);
		f[u]=v;s[u]=s[i]^s[j]^1;
	}
	fo(i,1,n)
	{
		if(find(i)!=1) printf("not moving\n");
		else
		{
			int u=p[1].r,v=p[i].r,g=__gcd(u,v);u/=g;v/=g;
			if(v==1) printf("%d",u);
			else printf("%d/%d",u,v);
			printf(" %s\n",s[i]==0?"clockwise":"counterclockwise");
		}
	}
}
int main()
{
	int T;scanf("%d",&T);
	while(T--) work();
}

詳細信息

Test #1:

score: 100
Accepted
time: 0ms
memory: 3880kb

input:

1
5
0 0 6
6 8 4
-9 0 3
6 16 4
0 -11 4

output:

1 clockwise
3/2 counterclockwise
2 counterclockwise
3/2 clockwise
not moving

result:

ok 5 lines

Test #2:

score: 0
Accepted
time: 8ms
memory: 3896kb

input:

61
5
0 0 1
0 -3 2
0 -8 3
0 -16 5
0 -28 7
10
15 92 12
-17 68 28
20 80 1
96 -45 28
0 0 11
-90 -15 26
60 32 57
-18 -80 71
-74 15 8
10 80 1
16
76 -74 6
-64 -9 9
12 -5 3
-48 3 11
16 -2 2
16 -63 55
-80 66 16
-90 90 10
-56 21 3
-40 -12 6
-20 48 42
0 0 10
86 -39 19
-34 -4 4
-100 18 36
55 17 34
15
84 -94 18
...

output:

1 clockwise
1/2 counterclockwise
1/3 clockwise
1/5 counterclockwise
1/7 clockwise
1 clockwise
3/7 counterclockwise
12 counterclockwise
3/7 counterclockwise
12/11 counterclockwise
6/13 counterclockwise
4/19 clockwise
12/71 clockwise
3/2 clockwise
12 counterclockwise
1 clockwise
2/3 counterclockwise
2...

result:

ok 12164 lines