链接:嗖的一下!
A
#include<bits/stdc++.h>
using namespace std;
#define ll long long
int a[500];
int c[500];
int main()
{
int N;
cin >> N;
while(N--)
{
int n, m;
cin >> n >> m;
for(int i = 0; i < m; i++)
cin >> a[i];
int maxn = a[0] - 1;
for(int i = 1; i < m; i++)
maxn = max(maxn, (a[i] - a[i - 1]) / 2);
maxn = max(maxn, n - a[m - 1]);
cout << maxn + 1 << endl;
}
return 0;
}
B
#include<bits/stdc++.h>
using namespace std;
const int MAX = 1005;
int l[MAX], r[MAX];
int main()
{
int N;
cin >> N;
while(N--)
{
int n;
cin >> n;
for(int i = 0; i < n; i++)
cin >> l[i] >> r[i];
int k = 0;
for(int i = 0; i < n; i++)
{
if(k <= r[i])
{
if(k <= l[i])
{
k = l[i];
cout << k++ << " ";
}
else
cout << k++ << " ";
}
else
cout << "0 ";
}
cout << endl;
}
return 0;
}
C
注意:数字是从1开始的,由1到n依次加一,所以直接和数组下标比较就可以;
#include<bits/stdc++.h>
using namespace std;
const int MAX = 2e5 + 7;
int a[MAX];
char s[MAX];
int main()
{
int n, num = 0;
cin >> n;
for(int i = 1; i <= n; i++)
{
cin >> a[i];
}
cin >> s + 1;
for(int i = 1; i < n; i++)
{
num = max(num, a[i]);
if(s[i] == '0' && num > i)
{
cout << "NO" << endl;
return 0;
}
}
cout << "YES" << endl;
return 0;
}