| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 | 
|---|---|---|---|---|---|---|---|
| 9441 | eternalklaus | Uniting (kriii2_U) | C++98 | 0 ms | 1476 KiB | 
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <stdio.h>
int arr[100000];
int main()
{
	int n,i,j,index;
	int tmp;
	int ttmp;
	int sum=0;
	long long nu=1;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		index=0;
		scanf("%d",&tmp);
		while(tmp>arr[index]&&index<i)
			index++;
		//index++자리에 인서트.
		for(j=i-1;j>=index;j--)
			arr[j+1]=arr[j];
		arr[index]=tmp;
	}
	for(i=0;i<n-1;i++)
	{
		sum+=arr[i]*arr[i+1];
		if(arr[i]!=arr[i+1])
			nu=nu*2;
		
		index=i+1;
		arr[i+1]=arr[i]+arr[i+1]; 
		
		ttmp=arr[i+1];
		//i+1에서 n까지 쏘팅!!!
		for(j=i+2;j<n;j++)
		{
			if(ttmp<arr[j])
				index++;
		}
		for(j=i+2;j<index;j++)
		{
			arr[j-1]=arr[j];
		}
		arr[index]=ttmp;
	}
	printf("%d\n",sum);
	printf("%ld\n",nu%1000000007);
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
