社区讨论
窝腰烟牌
P1871对撞机参与者 5已保存回复 6
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 6 条
- 当前快照
- 1 份
- 快照标识符
- @mlgxsdar
- 此快照首次捕获于
- 2026/02/11 02:30 上周
- 此快照最后确认于
- 2026/02/11 02:30 上周
这份代码样例是不对的,但还是能A
CPP#include<bits/stdc++.h>
using namespace std;
int n,m,num,cnt[100001];
bool a[100001];
char c;
int main() {
cin>>n>>m;
for(int i=1; i<=m; i++) {
cin>>c>>num;
if(c=='+') {
if(a[num])cout<<"Already on\n";
else {
int pf[1001],nub=0,num1=num,p=0;
for(int j=2; j*j<=num1; j++) {
if(num1%j==0) {
pf[++nub]=j;
while(num1%j==0)num1/=j;
}
}
if(num1>1)pf[++nub]=num1;
for(int j=1; j<=nub; j++) {
if(cnt[pf[j]]!=0&&cnt[pf[j]]!=num) {
p=cnt[pf[j]];
break;
}
}
if(p)cout<<"Conflict with "<<p<<'\n';
else {
for(int j=1; j<=nub; j++)cnt[pf[j]]=num;
a[num]=true;
cout<<"Success\n";
}
}
} else {
if(a[num]) {
int num1=num;
for(int j=2; j*j<=num1; j++) {
if(num1%j==0) {
if(cnt[j]==num) cnt[j]=0;
while(num1%j==0)num1/=j;
}
}
if(num1>1&&cnt[num1]==num) cnt[num1]=0;
a[num]=false;
cout<<"Success\n";
} else cout<<"Already off\n";
}
}
}
回复
共 6 条回复,欢迎继续交流。
正在加载回复...