답안 #74471

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
74471 2018-09-02T07:01:34 Z cheetose 초코쿠키 기계 (FXCUP3_chocolate) C++11
100 / 100
1519 ms 179332 KB
#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<vector>
#include<queue>
#include<bitset>
#include<string>
#include<stack>
#include<set>
#include<unordered_set>
#include<map>
#include<unordered_map>
#include<cstring>
#include<complex>
#include<cmath>
#include<iomanip>
#include<numeric>
#include<algorithm>
#include<list>
#include<functional>
#include<cassert>
#define mp make_pair
#define pb push_back
#define X first
#define Y second
#define INF 987654321
#define PI 3.14159265358979323846264
#define fup(i,a,b,c) for(int (i)=(a);(i)<=(b);(i)+=(c))
#define fdn(i,a,b,c) for(int (i)=(a);(i)>=(b);(i)-=(c))
#define MEM0(a) memset(a,0,sizeof(a));
#define MEM_1(a) memset(a,-1,sizeof(a));
#define ALL(a) a.begin(),a.end()
#define SYNC ios_base::sync_with_stdio(false);cin.tie(0)
using namespace std;
typedef long long ll;
typedef unsigned int uint;
typedef unsigned long long ull;
typedef pair<int, int> Pi;
typedef pair<ll, ll> Pll;
typedef pair<double, double> Pd;
typedef vector<int> Vi;
typedef vector<ll> Vll;
typedef vector<double> Vd;
typedef vector<Pi> VPi;
typedef vector<Pll> VPll;
typedef vector<Pd> VPd;
typedef tuple<int, int, int> iii;
typedef tuple<int, int, int, int> iiii;
typedef tuple<ll, ll, ll> LLL;
typedef vector<iii> Viii;
typedef vector<LLL> VLLL;
typedef complex<double> base;
const int MOD = 1000000009;
ll POW(ll a, ll b, ll MMM = MOD) { ll ret = 1; for (; b; b >>= 1, a = (a*a) % MMM)if (b & 1)ret = (ret*a) % MMM; return ret; }
ll gcd(ll a, ll b) { return b ? gcd(b, a%b) : a; }
ll lcm(ll a, ll b) { if (a == 0 || b == 0)return a + b; return a*(b / gcd(a, b)); }
int dx[] = { 0,1,0,-1 }, dy[] = { 1,0,-1,0 };
int ddx[] = { 0,0,1,1,1,-1,-1,-1 }, ddy[] = { 1,-1,1,0,-1,1,0,-1 };
 
Vi v[300001];
bool chk[300001],chk2[300001];
Vi B,O;
set<int> ans;
int main() {
	int n,m,k,e;
	scanf("%d%d%d",&n,&m,&k);
	fup(i,0,m-1,1)
	{
		int x;
		scanf("%d",&x);
		v[x].pb(x);
		chk[x]=1;
	}
	fup(i,0,k-1,1)
	{
		int x,y;
		scanf("%d%d",&x,&y);
		v[x].pb(y);
		v[y].pb(x);
	}
	scanf("%d",&e);
	while(e--)
	{
		char s[8]={0};
		int x;
		scanf("%*s%*s%d%*s%s",&x,s);
		if(s[0]=='B'&&!chk[x])
		{
			B.pb(x);
			chk2[x]=1;
		}
		else if(s[0]=='O')O.pb(x);
	}
	if(B.empty())
	{
		if(O.empty())
		{
			fup(i,1,n,1)ans.insert(i);
		}
		else
		{
			fup(i,1,n,1)if(!chk[i])ans.insert(i);
			for(int x:O)
			{
				for(int xx:v[x])
				{
					auto it=ans.find(xx);
					if(it!=ans.end())ans.erase(it);
				}
			}
		}
		printf("%d\n",ans.size());
		for(int x:ans)printf("%d ",x);
	}
	else
	{
		fup(i,1,n,1)
		{
			int cnt=0;
			for(int x:v[i])if(chk2[x])cnt++;
			if(cnt==B.size())ans.insert(i);
		}
		if(O.empty())
		{
			fup(i,1,n,1)if(chk[i])ans.insert(i);
		}
		else
		{
			for(int x:O)
			{
				for(int xx:v[x])
				{
					auto it=ans.find(xx);
					if(it!=ans.end())ans.erase(it);
				}
			}
		}
		printf("%d\n",ans.size());
		for(int x:ans)printf("%d ",x);
	}
}

Compilation message

chocolate.cpp: In function 'int main()':
chocolate.cpp:112:27: warning: format '%d' expects argument of type 'int', but argument 2 has type 'std::set<int>::size_type {aka long unsigned int}' [-Wformat=]
   printf("%d\n",ans.size());
                 ~~~~~~~~~~^
chocolate.cpp:121:10: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    if(cnt==B.size())ans.insert(i);
       ~~~^~~~~~~~~~
chocolate.cpp:138:27: warning: format '%d' expects argument of type 'int', but argument 2 has type 'std::set<int>::size_type {aka long unsigned int}' [-Wformat=]
   printf("%d\n",ans.size());
                 ~~~~~~~~~~^
chocolate.cpp:66:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d%d%d",&n,&m,&k);
  ~~~~~^~~~~~~~~~~~~~~~~~~
chocolate.cpp:70:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d",&x);
   ~~~~~^~~~~~~~~
chocolate.cpp:77:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d%d",&x,&y);
   ~~~~~^~~~~~~~~~~~~~
chocolate.cpp:81:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d",&e);
  ~~~~~^~~~~~~~~
chocolate.cpp:86:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%*s%*s%d%*s%s",&x,s);
   ~~~~~^~~~~~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 8 ms 7416 KB Output is correct
2 Correct 8 ms 7508 KB Output is correct
3 Correct 11 ms 7520 KB Output is correct
4 Correct 99 ms 11812 KB Output is correct
5 Correct 9 ms 11812 KB Output is correct
6 Correct 8 ms 11812 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 428 ms 19288 KB Output is correct
2 Correct 121 ms 19288 KB Output is correct
3 Correct 348 ms 30476 KB Output is correct
4 Correct 741 ms 44128 KB Output is correct
5 Correct 551 ms 62224 KB Output is correct
6 Correct 158 ms 62224 KB Output is correct
7 Correct 858 ms 66816 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 8 ms 7416 KB Output is correct
2 Correct 8 ms 7508 KB Output is correct
3 Correct 11 ms 7520 KB Output is correct
4 Correct 99 ms 11812 KB Output is correct
5 Correct 9 ms 11812 KB Output is correct
6 Correct 8 ms 11812 KB Output is correct
7 Correct 428 ms 19288 KB Output is correct
8 Correct 121 ms 19288 KB Output is correct
9 Correct 348 ms 30476 KB Output is correct
10 Correct 741 ms 44128 KB Output is correct
11 Correct 551 ms 62224 KB Output is correct
12 Correct 158 ms 62224 KB Output is correct
13 Correct 858 ms 66816 KB Output is correct
14 Correct 21 ms 66816 KB Output is correct
15 Correct 37 ms 66816 KB Output is correct
16 Correct 678 ms 77464 KB Output is correct
17 Correct 297 ms 77464 KB Output is correct
18 Correct 995 ms 111432 KB Output is correct
19 Correct 918 ms 114932 KB Output is correct
20 Correct 1054 ms 141724 KB Output is correct
21 Correct 1519 ms 153856 KB Output is correct
22 Correct 1155 ms 169036 KB Output is correct
23 Correct 975 ms 179332 KB Output is correct