![]() |
#2
rjsp2020-12-28 21:28
|

#include "iostream"
using namespace std;
int main ()
{
int acount[10005],sum,N,i,L,M,num1,num2,j;
cin >> N;
while(N--){
acount[10005] = {0},sum=0;
cin >>L>> M;//L 代表马路的长度,M 代表区域的数目
for(i=0; i<M; i++){
cin >>num1>>num2;//num1,num2表示起始、终点
for(j=num1; j<=num2; j++)
acount[j]++;
}
for(i=0; i<=L; i++)
if(acount[i]!=0) sum++;
cout << L+1-sum << endl;
}
return 0;
}
这个我把数组定义在外面导致答案错了,下面这个我把数组定义在循环里面,答案就对了using namespace std;
int main ()
{
int acount[10005],sum,N,i,L,M,num1,num2,j;
cin >> N;
while(N--){
acount[10005] = {0},sum=0;
cin >>L>> M;//L 代表马路的长度,M 代表区域的数目
for(i=0; i<M; i++){
cin >>num1>>num2;//num1,num2表示起始、终点
for(j=num1; j<=num2; j++)
acount[j]++;
}
for(i=0; i<=L; i++)
if(acount[i]!=0) sum++;
cout << L+1-sum << endl;
}
return 0;
}

#include "iostream"
using namespace std;
int main ()
{
int N,i,L,M,num1,num2,j;
cin >> N;
while(N--){
int acount[10005] = {0},sum=0;
cin >>L>> M;//L 代表马路的长度,M 代表区域的数目
for(i=0; i<M; i++){
cin >>num1>>num2;//num1,num2表示起始、终点
for(j=num1; j<=num2; j++)
acount[j]++;
}
for(i=0; i<=L; i++)
if(acount[i]!=0) sum++;
cout << L+1-sum << endl;
}
return 0;
}
using namespace std;
int main ()
{
int N,i,L,M,num1,num2,j;
cin >> N;
while(N--){
int acount[10005] = {0},sum=0;
cin >>L>> M;//L 代表马路的长度,M 代表区域的数目
for(i=0; i<M; i++){
cin >>num1>>num2;//num1,num2表示起始、终点
for(j=num1; j<=num2; j++)
acount[j]++;
}
for(i=0; i<=L; i++)
if(acount[i]!=0) sum++;
cout << L+1-sum << endl;
}
return 0;
}
Expected | Yours
15
| 15
964
| 332
58
| 19
75
| 13
12
| 7
468
| 7
1699
| 7
62
| 7
390
| 7
17
| 2
24
| 2
5
| 2
69
| 2
52
| 0
227
| 0
147
| 0
731
| 0
8
| 0
82
| 0
这是答案错误的地方,还麻烦大家能够帮我找出问题。