I am curious about a CE problem on the compiler Clang

Правка en1, от xiaofu15191, 2025-03-07 15:02:42

This is a code of AtCoder Typical 056.

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<string>
#include<vector>
using namespace std;
int n,s,a[110],b[110];
struct node
{
	int first,second;
}f[105][100010][2];
void output(int i,int j,int k)
{
	if(i>1) output(i-1,f[i][j][k].first,f[i][j][k].second);
	if(k==0) cout<<"A";
	else cout<<"B";
}
int main()
{
	cin>>n>>s;
	for(int i=1;i<=n;i++)
		for(int j=0;j<=s;j++)
			for(int k=0;k<2;k++)
				f[i][j][k]=node{-1,-1};
	cin>>a[1]>>b[1];
	f[1][a[1]][0]=node{0,0};
	f[1][b[1]][1]=node{0,0};
	for(int i=2;i<=n;i++)
	{
		cin>>a[i]>>b[i];
		for(int j=s;j>=a[i];j--)
		{
			if(f[i-1][j-a[i]][0].first!=-1) f[i][j][0]=node{j-a[i],0};
			if(f[i-1][j-a[i]][1].first!=-1) f[i][j][0]=node{j-a[i],1};
		}
		for(int j=s;j>=b[i];j--)
		{
			if(f[i-1][j-b[i]][0].first!=-1) f[i][j][1]=node{j-b[i],0};
			if(f[i-1][j-b[i]][1].first!=-1) f[i][j][1]=node{j-b[i],1};
		}
	}
	if(f[n][s][0].first==-1&&f[n][s][1].first==-1) cout<<"Impossible"<<endl;
	else
	{
		if(f[n][s][0].first!=-1) output(n,s,0);
		else output(n,s,1);
		cout<<endl;
	}
	return 0;
}

It runs successfully when I'm using the compiler gcc.

However,I tried to solve this problem by submitting it in C++23 (Clang 16.0.6),and I failed for 5 times.

Every time I submitted it,the AtCoder returned me a CE.This is an example.

I also tried to compile this code by Clang on my local computer(Ubuntu 20.04 LTS,Clang 14,RAM 4GB).I waited for nearly 2 minutes,and all the programs which were running(MS Edge and VS Code) went crashed.

Can anyone tell my why could this happen?

Теги clang, compilation error

История

 
 
 
 
Правки
 
 
  Rev. Язык Кто Когда Δ Комментарий
en1 Английский xiaofu15191 2025-03-07 15:02:42 1851 Initial revision (published)