제출 #278183

#제출 시각아이디문제언어결과실행 시간메모리
278183AKaan37Amusement Park (CEOI19_amusementpark)C++17
42 / 100
3044 ms227808 KiB
//Bismillahirrahmanirrahim
//█▀█─█──█──█▀█─█─█
//█▄█─█──█──█▄█─█▄█
//█─█─█▄─█▄─█─█─█─█

#include <bits/stdc++.h>

using namespace std;

typedef long long lo;
typedef pair< lo,lo > PII;
typedef pair< lo,PII > PIII;

#define fi first
#define se second
#define mp make_pair
#define endl "\n"
#define int long long
#define pb push_back
#define fio() ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL)
#define FOR for(int i=1;i<=n;i++)
#define mid ((start+end)/2)
#define ort ((bas+son)/2)

const lo inf = 1000000000000000000;
const lo KOK = 100000;
const lo LOG = 30;
const lo li = 15;
const lo mod = 1000000007;

int n,m,b[li],a[li],k,flag,t,vis[li],say=1,cevap;
int cev=1;
string s;
vector<PIII> v[li];
map<int,int> mpp;
vector<int> vv;

inline void check(){
	FOR vis[i]=0;
	int mask=0;
	int tut=0;
	for(int i=0;i<n;i++){
		int node=vv[i];
		
		for(int j=0;j<(int)v[node].size();j++){
			if(vis[v[node][j].fi])continue;
			tut+=v[node][j].se.fi;
			if(v[node][j].se.fi==1)mask|=(1ll<<v[node][j].se.se);
		}
		vis[node]=1;
	}
	if(mpp[mask]==0)cevap+=tut;
	mpp[mask]=1;
}

main(void){
	scanf("%lld %lld",&n,&m);
	for(int i=0;i<m;i++){
		int x,y;
		scanf("%lld %lld",&x,&y);
		v[x].pb({y,{0,i}});
		v[y].pb({x,{1,i}});
	}
	//~ printf("%lld\n",cev);
	FOR vv.pb(i);
	FOR{
		cev*=i;
	}
	while(say<=cev){
		say++;
		//~ cout<<say<<" : : "<<cev<<endl;
		check();
		next_permutation(vv.begin(),vv.end());
	}
	printf("%lld\n",cevap);
	return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

amusementpark.cpp:56:10: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   56 | main(void){
      |          ^
amusementpark.cpp: In function 'int main()':
amusementpark.cpp:57:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   57 |  scanf("%lld %lld",&n,&m);
      |  ~~~~~^~~~~~~~~~~~~~~~~~~
amusementpark.cpp:60:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   60 |   scanf("%lld %lld",&x,&y);
      |   ~~~~~^~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...