Submission #1317463

#TimeUsernameProblemLanguageResultExecution timeMemory
1317463neonglitchPermutation Recovery (info1cup17_permutation)C++20
Compilation error
0 ms0 KiB
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
#define int long double
main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int n;
	cin>>n;
	// int p[n+1]={0};
	// for(int i=1;i<=n;i++)p[i]=i;
	// do{
		int q[n+1]={0};
		int ans[n+1]={0};
		int val[n+1]={0};
		// q[1]=1;
		// for(int i=2;i<=n;i++)
		// {
			// q[i]=1+q[i-1];
			// for(int j=1;j<i;j++)
			// {
				// if(p[j]<p[i])
				// {
					// q[i]+=(q[j]-q[j-1]);
				// }
			// }
		// }
		for(int i=1;i<=n;i++){
			string s;
			cin>>s;
			for(int j=0;j<s.size();j++)
			{
				q[i]=(q[i]*10+(s[j]-'0'));
			}
		}
		// for(int i=1;i<=n;i++)cout<<q[i]<<' ';;
		// cout<<endl;
		for(int j=n;j>=1;j--)
		{
			int mx=-1;
			int sm=0,st=0;
			for(int i=1;i<=n;i++)
			{
				if(!val[i])
				{
					if((q[i-1]*2+1-sm)==q[i])
					{
						mx=i;
						st=sm;
					}
				}
				else{
					sm+=val[i];
				}
			}
			val[mx]=q[mx]-q[mx-1];
			ans[mx]=j;
		}
		// bool fl=0;
		// for(int i=1;i<=n;i++)
		// {
		// 	if(ans[i]!=p[i])
		// 	{
		// 		cout<<"fudge"<<endl;
		// 		fl=1;
		// 		break;
		// 	}
		// }
		// if(fl)
		// {
		for(int i=1;i<=n;i++)cout<<ans[i]<<' ';
		cout<<endl;					
		// 		for(int i=1;i<=n;i++)cout<<p[i]<<' ';
		// cout<<endl;		
		// break;
		// }

	// }while(next_permutation(p+1,p+1+n));

}

Compilation message (stderr)

Main.cpp:6:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
    6 | main()
      | ^~~~
Main.cpp: In function 'int main()':
Main.cpp:16:24: error: conversion from 'long double' to 'long unsigned int' in a converted constant expression
   16 |                 int q[n+1]={0};
      |                       ~^~
Main.cpp:16:24: error: could not convert '(n + (long double)1)' from 'long double' to 'long unsigned int'
   16 |                 int q[n+1]={0};
      |                       ~^~
      |                        |
      |                        long double
Main.cpp:16:24: error: size of array 'q' has non-integral type 'long double'
Main.cpp:17:26: error: conversion from 'long double' to 'long unsigned int' in a converted constant expression
   17 |                 int ans[n+1]={0};
      |                         ~^~
Main.cpp:17:26: error: could not convert '(n + (long double)1)' from 'long double' to 'long unsigned int'
   17 |                 int ans[n+1]={0};
      |                         ~^~
      |                          |
      |                          long double
Main.cpp:17:26: error: size of array 'ans' has non-integral type 'long double'
Main.cpp:18:26: error: conversion from 'long double' to 'long unsigned int' in a converted constant expression
   18 |                 int val[n+1]={0};
      |                         ~^~
Main.cpp:18:26: error: could not convert '(n + (long double)1)' from 'long double' to 'long unsigned int'
   18 |                 int val[n+1]={0};
      |                         ~^~
      |                          |
      |                          long double
Main.cpp:18:26: error: size of array 'val' has non-integral type 'long double'
Main.cpp:36:34: error: invalid types 'long double [1][long double]' for array subscript
   36 |                                 q[i]=(q[i]*10+(s[j]-'0'));
      |                                  ^
Main.cpp:36:40: error: invalid types 'long double [1][long double]' for array subscript
   36 |                                 q[i]=(q[i]*10+(s[j]-'0'));
      |                                        ^
Main.cpp:47:40: error: invalid types 'long double [1][long double]' for array subscript
   47 |                                 if(!val[i])
      |                                        ^
Main.cpp:49:46: error: invalid types 'long double [1][long double]' for array subscript
   49 |                                         if((q[i-1]*2+1-sm)==q[i])
      |                                              ^
Main.cpp:49:62: error: invalid types 'long double [1][long double]' for array subscript
   49 |                                         if((q[i-1]*2+1-sm)==q[i])
      |                                                              ^
Main.cpp:56:48: error: invalid types 'long double [1][long double]' for array subscript
   56 |                                         sm+=val[i];
      |                                                ^
Main.cpp:59:28: error: invalid types 'long double [1][long double]' for array subscript
   59 |                         val[mx]=q[mx]-q[mx-1];
      |                            ^
Main.cpp:59:34: error: invalid types 'long double [1][long double]' for array subscript
   59 |                         val[mx]=q[mx]-q[mx-1];
      |                                  ^
Main.cpp:59:40: error: invalid types 'long double [1][long double]' for array subscript
   59 |                         val[mx]=q[mx]-q[mx-1];
      |                                        ^
Main.cpp:60:28: error: invalid types 'long double [1][long double]' for array subscript
   60 |                         ans[mx]=j;
      |                            ^
Main.cpp:74:47: error: invalid types 'long double [1][long double]' for array subscript
   74 |                 for(int i=1;i<=n;i++)cout<<ans[i]<<' ';
      |                                               ^