1 / 4
Jan 2018

Can someone tell me why is this wrong…??

#include<bits/stdc++.h>

using namespace std;

#define ll long long int

ll toNumber(vector array, int N)
{
ll num = 0;
int i = N;
int j = 0;
while(i–)
{
num+=(array[i]*pow(10,j++));
}
return num;
}

int main()
{
int t = 0;
cin>>t;

while(t--)
{
	int N = 0;
	cin>>N;
	
	vector<ll> array(N);
	bool flag = true;
	
	for(int i = 0; i < N; i++)
		cin>>array[i];

	for(int i = N - 1; i > 0; i--)
	{
		if(array[i] > array[i-1])
		{
			flag = false;
			ll temp = array[i];
			array[i] = array[i-1];
			array[i-1] = temp;
			break;
		}
	}


	if(flag)
		cout<<-1<<endl;
	else
		cout<<toNumber(array,N)<<endl;
}

}

  • created

    Jan '18
  • last reply

    Jun '18
  • 3

    replies

  • 805

    views

  • 4

    users

4 months later