goc题目求调
  • 板块学术版
  • 楼主lbw318
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/11/26 13:55
  • 上次更新2024/11/26 17:57:01
查看原帖
goc题目求调
1536432
lbw318楼主2024/11/26 13:55

https://www.51goc.com/level/program/110/640 题目如下:

题目描述 在一条数轴上,有N条线段,第i条线段的左端点是s[i],右端点是e[i]。如果线段有重叠(即使是端点重叠也算是重叠),则输出“impossible”, 如果没有重叠则输出“possible”。

输入格式

输入文件名:640.in

多组测试数据。

第一行,一个整数G,表示有G组测试数据。1 <= G <= 10。

每组测试数据格式如下:

第一行,一个整数N。 1 <= N <= 10。

接下来有N行,每行两个整数:s[i],e[i]。 0<=s[i],e[i]<=1000000。

输出格式

输出文件名:640.out

共G行,每行一个字符串,不含双引号。

代码:

#include<bits/stdc++.h>
using namespace std;
int sz[1000005];
int main(){
    int g,n;
	int s,e;
    bool pd=true; 
    cin>>g;
    bool myddx[g];
    for(int i=0;i<g;i++){
        cin>>n;
        for(int j=1;j<=n;j++){
            cin>>s>>e;
            for(int k=s-1;k<e;k++){
                if(sz[k]!=1){
                	sz[k]=1;
				} 
                else{
                	pd=false;
				} 
            }
        }
		for(int k=0;k<=1000005;k++){
            	sz[k]=0;
		}
        if(pd==true) myddx[i]=true;
        else myddx[i]=false;
    }
    for(int i=0;i<g;i++){
    	if(myddx[i]==true) cout<<"possible"<<endl;
    	else cout<<"impossible"<<endl;
	}
    return 0;
}
2024/11/26 13:55
加载中...