Submission #1323814

#TimeUsernameProblemLanguageResultExecution timeMemory
1323814PieArmyBroken Device (JOI17_broken_device)C++20
100 / 100
28 ms1576 KiB
#include "Annalib.h"
#include<bits/stdc++.h>
typedef long long ll;
#define pb push_back
#define fr first
#define sc second
#define endl '\n'
using namespace std;
#define mid ((left+right)>>1)

void Anna(int N, long long X, int K, int P[]){
	vector<int>sira={43,10,26,142,70,74,107,129,0,119,143,60,110,109,91,1,94,22,35,17,126,69,145,56,83,39,135,100,15,137,147,113,102,130,21,59,16,131,50,34,124,3,29,106,138,31,89,136,80,61,115,98,132,108,66,42,47,40,7,18,25,6,2,73,30,101,82,62,20,8,127,58,84,19,116,103,125,118,27,75,55,86,120,52,141,14,99,57,95,104,5,12,92,97,46,33,77,148,41,53,78,90,121,111,87,96,63,64,93,11,38,23,13,134,68,36,65,105,114,4,149,28,123,146,144,85,133,67,112,44,9,54,32,45,24,117,122,72,49,139,88,81,140,128,79,37,51,76,48,71};
	srand(23232323);
	random_shuffle(sira.begin(),sira.end());
	int n;
	int arr[150];
	ll val;
	vector<int>v;
	n=N;
	val=X;
	for(int i=0;i<n;i++){
		arr[i]=0;
	}
	for(int i=0;i<K;i++){
		arr[P[i]]=1;
	}
	if(n!=150){
		sira.resize(n);
		iota(sira.begin(),sira.end(),0);
	}
	{
		ll x=val;
		int t=38;
		while(t--){
			v.pb(x%3);
			x/=3;
		}
		reverse(v.begin(),v.end());
	}
	int p=0;
	int cnt=0;
	for(int i=0;i<n;i+=2){
		if(p==v.size()){
			p--;
			Set(sira[i],0);
			Set(sira[i+1],0);
		}
		else if(v[p]==0&&arr[sira[i+1]]==0){
			Set(sira[i],0);
			Set(sira[i+1],1);
		}
		else if(v[p]==1&&arr[sira[i]]==0){
			Set(sira[i],1);
			Set(sira[i+1],0);
		}
		else if(v[p]==2&&arr[sira[i]]==0&&arr[sira[i+1]]==0){
			Set(sira[i],1);
			Set(sira[i+1],1);
		}
		else{
			p--;
			Set(sira[i],0);
			Set(sira[i+1],0);
		}
		p++;
	}
}
#include "Brunolib.h"
#include<bits/stdc++.h>
typedef long long ll;
#define pb push_back
#define fr first
#define sc second
#define endl '\n'
using namespace std;
#define mid ((left+right)>>1)

long long Bruno(int N, int A[]){
	int n;
	vector<int>sira={43,10,26,142,70,74,107,129,0,119,143,60,110,109,91,1,94,22,35,17,126,69,145,56,83,39,135,100,15,137,147,113,102,130,21,59,16,131,50,34,124,3,29,106,138,31,89,136,80,61,115,98,132,108,66,42,47,40,7,18,25,6,2,73,30,101,82,62,20,8,127,58,84,19,116,103,125,118,27,75,55,86,120,52,141,14,99,57,95,104,5,12,92,97,46,33,77,148,41,53,78,90,121,111,87,96,63,64,93,11,38,23,13,134,68,36,65,105,114,4,149,28,123,146,144,85,133,67,112,44,9,54,32,45,24,117,122,72,49,139,88,81,140,128,79,37,51,76,48,71};
	srand(23232323);
	random_shuffle(sira.begin(),sira.end());
	n=N;
	if(n!=150){
		sira.resize(n);
		iota(sira.begin(),sira.end(),0);
	}
	ll ans=0;
	for(int i=0;i<n;i+=2){
		int x=A[sira[i]]*2;
		if(i!=n-1)x+=A[sira[i+1]];
		if(!x)continue;
		ans*=3;
		ans+=x-1;
	}
	return ans;
}

Compilation message (stderr)

# 1번째 컴파일 단계

Anna.cpp: In function 'void Anna(int, long long int, int, int*)':
Anna.cpp:14:23: warning: 'void std::random_shuffle(_RAIter, _RAIter) [with _RAIter = __gnu_cxx::__normal_iterator<int*, vector<int> >]' is deprecated: use 'std::shuffle' instead [-Wdeprecated-declarations]
   14 |         random_shuffle(sira.begin(),sira.end());
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/13/algorithm:61,
                 from /usr/include/x86_64-linux-gnu/c++/13/bits/stdc++.h:51,
                 from Anna.cpp:2:
/usr/include/c++/13/bits/stl_algo.h:4581:5: note: declared here
 4581 |     random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last)
      |     ^~~~~~~~~~~~~~

# 2번째 컴파일 단계

Bruno.cpp: In function 'long long int Bruno(int, int*)':
Bruno.cpp:15:23: warning: 'void std::random_shuffle(_RAIter, _RAIter) [with _RAIter = __gnu_cxx::__normal_iterator<int*, vector<int> >]' is deprecated: use 'std::shuffle' instead [-Wdeprecated-declarations]
   15 |         random_shuffle(sira.begin(),sira.end());
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/13/algorithm:61,
                 from /usr/include/x86_64-linux-gnu/c++/13/bits/stdc++.h:51,
                 from Bruno.cpp:2:
/usr/include/c++/13/bits/stl_algo.h:4581:5: note: declared here
 4581 |     random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last)
      |     ^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...