P8598 [蓝桥杯 2013 省 AB] 错误票据--2024蓝桥杯冲刺省一

点击跳转例题

思路:
直接进行模拟即可,需要注意的是有很多细节.
首先输入的问题:每个例子没有给出数量,那么我们怎么办呢?  当然是直接读入一整行!

那么我们如何分割呢?这里引入stringstream(知识总结);
利用getline()读入一整行,stringstream来过滤掉空格;

#include <bits/stdc++.h>
#define int long long //(有超时风险)
#define PII pair<int,int>
#define endl '\n'
#define LL __int128

using namespace std;

const int N=2e5+10,M=1e3+10,mod=998244353,INF=0x3f3f3f3f;

int a[N],b[N],c[N],pre[N];

signed main()
{
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr);
	
    int n;cin>>n;
    int cnt=0;
    while(cin>>a[++cnt]);
    
    int ans1,ans2;
    sort(a+1,a+cnt+1);
    for(int i=1;i<cnt;i++)
    {
    	if(a[i]==a[i+1])
    	{
    		ans1=a[i];
		}
		if(a[i]==a[i+1]-2)
		{
			ans2=a[i]+1;
		}
	}
	//cout<<cnt<<endl;
	cout<<ans2<<' '<<ans1<<endl;

    return 0;
}


 

#include <bits/stdc++.h>
#define int long long 
#define PII pair<int,int>

using namespace std;

const  int N=10010;

signed main()
{
	int n;cin>>n;
	int a[N];
	string s; 
    //读掉缓冲区中的换行符.
	getline(cin,s);
	
	int cnt=0;
	for(int i=1;i<=n;i++)
	{
		getline(cin,s);//string中读入一整行
		stringstream line;
        line << s ; //s输入到流中
		while(line>>a[cnt])cnt++;//从流中输出
	}
	
	sort(a,a+cnt);
	
    //找出重号和缺号
	int ans1=0,ans2=0;
	for(int i=0;i<cnt-1;i++)
	{
		if(a[i]==a[i+1]&&!ans2)
			ans2=a[i];
		if(a[i+1]-a[i]==2&&!ans1)
			ans1=a[i]+1;
	}
	cout<<ans1<<' '<<ans2<<endl;	
	return 0;
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值