90 pts WA on #1 悬关
查看原帖
90 pts WA on #1 悬关
718487
CleverRaccoonʕ•ᴥ•ʔ楼主2024/4/14 17:03
#include <bits/stdc++.h>
using namespace std;

#define int long long
#define double long double

const int N=107;

int n;
bool tag[N];
double a[N][N];

signed main(){
	cin>>n;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n+1;j++)
			cin>>a[i][j];
	cout<<fixed<<setprecision(2);
	int cnt=0;
	for(int i=1;i<=n;i++){
		int pla=i;
		while(pla<=n&&a[pla][i]==0)pla++;
		if(pla==n+1)continue;
		for(int j=1;j<=n+1;j++)swap(a[i][j],a[pla][j]);
		double tmp=a[i][i];
		for(int j=1;j<=n+1;j++)a[i][j]/=tmp;
		for(int j=1;j<=n;j++)if(i!=j){
			tmp=a[j][i];
			for(int k=1;k<=n+1;k++)a[j][k]=a[j][k]-tmp*a[i][k];
		}
		++cnt;
	}
	if(cnt<n){
		while(cnt<n){
			if(a[cnt][n+1]>0)return puts("-1"),0;
			++cnt;
		}
		return puts("0"),0;
	}
	for(int i=1;i<=n;i++)
		cout<<"x"<<i<<"="<<a[i][n+1]<<endl;
	return 0;
}
2024/4/14 17:03
加载中...