UOJ Logo

NOI.AC

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#209825#3778. 交换乘积Chenzihan0826100294ms5476kbC++111.4kb2024-08-05 09:40:512024-08-05 12:12:37

answer

#include<bits/stdc++.h>
#define	int	long long
using namespace std;
int n,a[1009],a1[1009],b[1009],c[1009],na[1009];bool p[1009];
void print()
{
	for(int i=1;i<=n;i++)cout<<na[i]<<" ";
	cout<<endl;
	for(int j=1;j<=n;j++)cout<<b[j]<<" ";
	cout<<endl;
}
signed main()
{
	cin>>n;int sum=0;
	for(int i=1;i<=n;i++)cin>>a[i];
	for(int i=1;i<=n;i++)cin>>b[i];
	for(int i=1;i<=n;i++)
	{
		int minn=100000008;
		for(int j=1;j<=n;j++)
		{
			if(p[j]==false)
			{
				minn=min(minn,b[j]);
			}
		}
		for(int j=1;j<=n;j++)
		{
			if(b[j]==minn&&p[j]==false)
			{
				p[j]=true;
				c[i]=j;
				break;
			}
		}
	}
	for(int i=1;i<=n;i++)a1[i]=a[i];
	sort(a1+1,a1+1+n);
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			if(c[j]==i)
			{
				na[i]=a1[j];
			}
		}
	}
	//print();
	for(int i=1;i<=n;i++)sum+=na[i]*b[i];
	cout<<sum<<endl;sum=0;
	queue<int>v;stack<int>v1;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n-1;j++)
		{
			if(a[j]>a[j+1])
			{
				swap(a[j],a[j+1]);
				v.push(j);
				sum++;
			}
		}
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n-1;j++)
		{
			if(na[j]>na[j+1])
			{
				swap(na[j],na[j+1]);
				v1.push(j);
				sum++;
			}
		}
	}
	cout<<sum<<endl;
while(!v.empty())
{
	cout<<v.front()<<" ";
	v.pop();
 } 
while(!v1.empty())
{
	cout<<v1.top()<<" ";
	v1.pop();
 } 
	return 0;
}


详细

小提示:点击横条可展开更详细的信息

Test #1:

score: 10
Accepted
time: 0ms
memory: 1260kb

input:

10
2 6 6 7 7 8 9 9 9 10
1 2 2 2 4 4 4 5 8 9

output:

343
0

result:

ok Accepted

Test #2:

score: 10
Accepted
time: 0ms
memory: 1280kb

input:

300
3 7 16 23 27 28 30 31 31 33 39 39 40 41 45 52 54 57 60 76 77 80 82 83 84 87 95 96 99 101 102 102...

output:

100081185
0

result:

ok Accepted

Test #3:

score: 10
Accepted
time: 7ms
memory: 1292kb

input:

1000
5877 11223 46751 56288 84111 90383 107139 123175 189078 189840 201516 206791 212484 235460 2355...

output:

31886434041864508
0

result:

ok Accepted

Test #4:

score: 10
Accepted
time: 3ms
memory: 1448kb

input:

300
850 586 11 803 499 983 491 676 654 701 902 727 76 292 948 875 126 701 815 10 614 170 207 109 3 3...

output:

30126307
22499
1 2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 33 ...

result:

ok Accepted

Test #5:

score: 10
Accepted
time: 27ms
memory: 3240kb

input:

1000
2303 71258 47543 27966 78350 51973 54564 93554 93120 22126 73773 37093 33624 99015 98835 72871 ...

output:

33644571203
259882
2 3 5 6 8 9 10 11 12 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ...

result:

ok Accepted

Test #6:

score: 10
Accepted
time: 1ms
memory: 1316kb

input:

100
96840 47122 5255 76197 81892 650 34013 82490 89220 60416 42623 1755 82567 10753 20425 70135 4333...

output:

357435899115
4879
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 25 26 27 28 29 30 31 3...

result:

ok Accepted

Test #7:

score: 10
Accepted
time: 52ms
memory: 3916kb

input:

800
6547222 7373197 3093209 5574969 3392784 6785440 1906423 4960424 1000638 4591726 9150475 1385022 ...

output:

26926720212052531
321008
2 3 4 5 6 7 8 9 11 12 13 15 16 17 18 19 20 21 22 24 25 26 27 28 29 30 31 32...

result:

ok Accepted

Test #8:

score: 10
Accepted
time: 78ms
memory: 5268kb

input:

1000
350 868 622 692 210 3582 3414 2296 2391 1002 1607 945 111 478 424 661 3009 2223 2397 2168 1618 ...

output:

5358834254
486022
2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 24 25 26 27 28 29 30 31 32 33...

result:

ok Accepted

Test #9:

score: 10
Accepted
time: 46ms
memory: 3152kb

input:

1000
1 2 1 2 1 1 1 2 1 1 2 2 1 2 1 1 2 2 1 2 1 1 1 2 1 1 1 2 1 1 1 1 2 1 2 2 1 2 1 1 1 1 1 1 1 1 1 1...

output:

2507
228226
2 4 5 6 8 9 12 14 15 18 20 21 22 24 25 26 28 29 30 31 33 36 38 39 40 41 42 43 44 45 46 4...

result:

ok Accepted

Test #10:

score: 10
Accepted
time: 80ms
memory: 5476kb

input:

1000
4326892 2791949 5730257 8195022 6651135 6011847 9951798 1049226 2435447 2097834 7158411 7162178...

output:

34200287502289533
511576
1 4 5 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 ...

result:

ok Accepted

Extra Test:

score: 0
Extra Test Passed