Welcome to Liukejie's|

liukejie

园龄:1年8个月粉丝:5关注:11

2023-07-01 11:11阅读: 11评论: 0推荐: 0

AT1716 袋とボール题解

题目传送门


思路:

  • A 袋有一个数等于 C,那么答案就包含着 B 袋中的两个数;
  • B 袋有一个数等于 C,那么答案就包含着 A 袋中的两个数;

当然,还要将答案排序并去重,需要用 algorithm 库中的 sortunique 这两个函数。

就这样,我们就顺利地 AC 了!


代码如下

//#include<bits/stdc++.h>
#include<cmath>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int INF=0x3f3f3f3f,MOD=1e9+7;
#define pu putchar
#define endl puts("")
//#define int __int128
//#define int long long
#define rep(i,l,r) for(int i=l;i<=r;++i)
#define per(i,r,l) for(int i=r;i>=l;--i)
#define me0(a); memset(a,0,sizeof a);
#define me3(a); memset(a,0x3f,sizeof a);
#define PII pair<int,int>
void read(int &n){char c,w=1;for(;48>c||c>57;c=getchar())
w=c==45?-1:1;for(n=0;47<c&&c<58;c=getchar())n=n*10+c-48;n*=w;
}void write(int x){if(x<0)pu(45),x=-x;char c[41],s=0;
for(;x;)c[s++]=x%10,x/=10;if(!s)pu(48);for(;s--;)pu(c[s]+48);
}void debug(int n){printf("\tdebug:\t"); write(n); pu('\t');}
const int MAXN=2e5+10;
int a1,a2,b1,b2,c,a[10],tot;
signed main(){
	read(a1); read(a2); read(b1); read(b2); read(c);
    if(c==a1||c==a2){
    	a[++tot]=b1; a[++tot]=b2;
	}if(c==b1||c==b2){
		a[++tot]=a1; a[++tot]=a2;	
	}sort(a+1,a+tot+1);
    tot=a[0]=unique(a+1,a+tot+1)-a-1;
    rep(i,0,tot){
    	write(a[i]); endl;
	}
}

AC 记录(全洛谷第一最优解,欢迎打破)。

完结撒花 ∼∼∼

posted @   liukejie  阅读(11)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起