読者です 読者をやめる 読者になる 読者になる

AOJ Problem 1030 : Cubes Without Holes

404 Not Found ← 問題文

なんか問題内容の割に正答率低い問題。何か落とし穴があるのだろうか。自分は気づかずACできた。

ホントやるだけ。500^3は一億超えちゃうので三次元配列とか用意すると死ぬと思う。setで節約 + 重複除去で一石二鳥。

#include <set>
#include <iostream>
using namespace std;
typedef pair< int, pair<int,int> > cube;

int main(){
	int n,h,a,b;
	string s;
	while(cin >> n >> h && (n||h) ){
		set<cube> data;
		cube t;
		for(int i=0;i<h;i++){
			cin >> s >> a >> b;
			for(int i=1;i<=n;i++){
				if(s=="xy")t = make_pair(a,make_pair(b,i));
				if(s=="xz")t = make_pair(a,make_pair(i,b));
				else if(s=="yz")t = make_pair(i,make_pair(a,b));
				data.insert(t);
			}
		}
		cout << n*n*n-data.size() << endl;
	}
}