求C++大神帮忙,为什么编译通过,在VS中答案也正确,但分数仍是0呢?

#include<iostream>
#include<vector>
using namespace std;

int main()
{
int L,S,M,N,sum = 0,T; //L是道路长度,M是区域数,S是区域起点,N是区域终点,T是最后剩余的树的数目
vector<int> a(2); //用来存放每行的起点和终点
vector<vector<int>> b; //用来存放三行的起点和终点

cin>>L>>M;

b.clear();

for(int i = 0;i<M;i++)
{
a.clear();
cin>>S>>N;
a.push_back(S);
a.push_back(N);

b.push_back(a);
}

sum = b[0][1] - b[0][0];
for(int i = 1;i<M;i++)
{
sum = sum + b[i][1] - b[i][0];
if(b[i][1] > b[i-1][0] && b[i][0] < b[i-1][0]) //减去重叠区域多加的树
sum = sum - (b[i][1] - b[i-1][0]);
}

T = L - 1 - sum;
cout<<T<<endl;

return 0;
}

4 条评论

  • @ 2016-06-22 13:46:55

    #include<iostream>
    #include<cstdio>
    using namespace std;
    int n,m,l,r,ans,f[10001];
    int main()
    {
    cin>>n>>m;
    for(int i=1;i<=m;++i)
    {
    cin>>l>>r;
    if(l>r) swap(l,r);
    for(int j=l;j<=r;++j) f[j]=1;
    }
    for(int i=0;i<=n;++i)
    if(!f[i])
    ans++;
    cout<<ans<<endl;
    return 0;
    }

  • @ 2015-10-13 07:49:49

    编译超时

  • @ 2015-09-27 09:53:14

    #include <iostream>
    using namespace std;
    int main()
    {
    int i,j;
    int n,m;
    cin>>n>>m;
    bool l[n+1];
    int x,y;
    for(i=0;i<=n;i++)
    l[i]=true;
    for(i=0;i<=n;i++)
    {
    cin>>x>>y;
    for(j=x;j<=y;j++)
    {

    l[j]=false;
    }

    }
    int js=0;
    for(i=0;i<=n;i++)
    {
    if(l[i]==true)
    js++;
    }
    cout<<js<<endl;
    //system("pause");
    return 0;
    }

  • @ 2015-04-14 12:04:03

    题目首先没有保证排序了。其次可能是存在包含关系的。

  • 1

信息

ID
1103
难度
4
分类
模拟 点击显示
标签
递交数
14316
已通过
6534
通过率
46%
被复制
55
上传者