0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

abc 088

Last updated at Posted at 2018-10-10

B
N 枚のカードがあります. i 枚目のカードには, ai という数が書かれています.
Alice と Bob は, これらのカードを使ってゲームを行います. ゲームでは, Alice と Bob が交互に 1 枚ずつカードを取っていきます. Alice が先にカードを取ります.
2 人がすべてのカードを取ったときゲームは終了し, 取ったカードの数の合計がその人の得点になります. 2 人とも自分の得点を最大化するように最適な戦略を取った時, Alice は Bob より何点多く取るか求めてください.

kisikan!!

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main() {
	int N;
	int a;
	vector<int>V;
	cin >> N;
	for (int i = 0; i < N;++i) {
		cin >> a;
		V.push_back(a);
	}
	sort(V.begin(), V.end(),greater<int>());
	int Asum = 0;
	int Bsum = 0;
	for (int i = 0; i < N; i += 2) {
		Asum += V[i];
	}
	for (int i = 1; i< N; i += 2) {
		Bsum += V[i];
	}
	cout << Asum - Bsum << endl;
	return 0;
}

vectorは便利。

C
3×3 のグリッドがあります. 上から i 番目で左から j 番目のマスを (i,j) で表すとき, マス (i,j) には数 ci,j が書かれています.
高橋君によると, 整数 a1,a2,a3,b1,b2,b3 の値が決まっており, マス (i,j) には数 ai+bj が書かれているらしいです.
高橋君の情報が正しいか判定しなさい.
制約
ci,j (1≤i≤3,1≤j≤3) は 0 以上 100 以下の整数

#include<iostream>
#include<vector>
#include<algorithm>
#include<string>
#include<map>
#include<math.h>
#include<queue>
#include<deque>
#include<stack>
#include<cstdio>
#include<utility>
#include<set>
#include<list>
#include<cmath>
using namespace std;
using ll = long long;
using pii = pair<int, int>;
const int INF = 1e9;
int main() {
	int c[3][3];
	for (int i = 0; i < 3; ++i) {
		for (int j = 0; j < 3; ++j) {
			cin >> c[i][j];
		}
	}
	bool can = false;
	if (c[1][0] - c[0][0] == c[1][1] - c[0][1]&&c[1][1]-c[0][1] == c[1][2] - c[0][2]
		&& c[2][0] - c[1][0] == c[2][1] - c[1][1] && c[2][1]-c[1][1] == c[2][2] - c[1][2]
		&& c[0][1] - c[0][0] == c[1][1] - c[1][0] &&c[1][1]-c[1][0] == c[2][1] - c[2][0]
		&& c[0][2] - c[0][1] == c[1][2] - c[1][1] &&c[1][2]-c[1][1] == c[2][2] - c[2][1]) {
		can = true;
	}
	if (can)
		cout << "Yes" << endl;
	else
		cout << "No" << endl;
	return 0;
}
#include <iostream>
#include<algorithm>
#include<vector>
using namespace std;
using ll = long long;
#define INF 1e9

int main() {
	int c[3][3];
	for (int i = 0; i < 3; ++i) {
		for (int j = 0; j < 3; ++j) {
			cin >> c[i][j];
		}
	}
	int a[3], b[3];
	bool can = true;;
	for (int i = 0; i < 3; ++i) {
		a[i] = c[i][0] - b[0];
	}
	for (int i = 0; i < 3; ++i) {
		b[i] = c[0][i] - a[0];
	}
	for (int i = 0; i < 3; ++i) {
		for (int j = 0; j < 3; ++j) {
			if (c[i][j] != a[i] + b[j])
				can = false;
		}
	}
	if (can)
		cout << "Yes";
	else
		cout << "No";
	return 0;
}

スマートな解法。AC。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?