A:简单的判断输出
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = (int)1e3 +10;
int main()
{
ll a, b;
cin>>a>>b;
if((a+b)%2 == 0)
cout<<(a+b)/2;
else
cout<<"IMPOSSIBLE"<<endl;
return 0;
}
B:用pos记录一下不相等个数
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = (int)1e3 +10;
int main()
{
int n;
cin>>n;
int arr[60];
int pos = 0;
for(int i = 1; i <= n; i++)
{
cin>>arr[i];
if(arr[i] != i) pos++;
}
if(pos == 0 || pos == 2) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
return 0;
}
C:简单贪心