답안 #673325

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
673325 2022-12-20T08:12:34 Z Baytoro Red-blue table (IZhO19_stones) C++17
100 / 100
27 ms 2180 KB
#include <bits/stdc++.h>
using namespace std;
#define ios ios::sync_with_stdio(false); cin.tie(NULL);
#define pb push_back
#define all(x) x.begin(), x.end()
#define rall(x) x.rbegin(), x.rend()
#define fr first
#define sc second
#define int long long
#define endl '\n'
#define cnt(x) __builtin_popcount(x)
void fopn(string name){
	freopen((name+".in").c_str(),"r",stdin);
	freopen((name+".out").c_str(),"w",stdout);
}
const int INF=1e18,mod=998244353;
int n,m;
char ar[1005][1005];
void solve(){
	cin>>n>>m;
	int swaped=0;
	if(n>m){
		swap(n,m);
		swaped=1;
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			if(swaped)
				ar[i][j]='+';
			else
				ar[i][j]='-';
		}
			
	}
	cout<<m+min(n,(n/2-!(n%2))*m/(m/2+1))<<endl;
	for(int i=1,k=1;i<=min(n,(n/2-!(n%2))*m/(m/2+1));i++){
		for(int j=1;j<=m/2+1;j++,k++){
			if(k==m+1) k=1;
			if(swaped)
				ar[i][k]='-';
			else
				ar[i][k]='+';
		}
	}
	if(!swaped)
		for(int i=1;i<=n;i++){
			for(int j=1;j<=m;j++)
				cout<<ar[i][j];
			cout<<endl;
		}
	else
		for(int i=1;i<=m;i++){
			for(int j=1;j<=n;j++)
				cout<<ar[j][i];
			cout<<endl;
		}
}
main(){
	//fopn("newbarn");
	ios;
	int T=1;
	cin>>T;
	while(T--){
		solve();
	}
}

Compilation message

stones.cpp:58:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   58 | main(){
      | ^~~~
stones.cpp: In function 'void fopn(std::string)':
stones.cpp:13:9: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   13 |  freopen((name+".in").c_str(),"r",stdin);
      |  ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
stones.cpp:14:9: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   14 |  freopen((name+".out").c_str(),"w",stdout);
      |  ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
stones.cpp: In function 'void solve()':
stones.cpp:40:12: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
   40 |     ar[i][k]='-';
      |     ~~~~~~~^
stones.cpp:18:6: note: at offset 0 to object 'ar' with size 1010025 declared here
   18 | char ar[1005][1005];
      |      ^~
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 340 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 1 ms 340 KB Output is correct
4 Correct 1 ms 340 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 21 ms 1416 KB Output is correct
2 Correct 19 ms 1868 KB Output is correct
3 Correct 20 ms 1868 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 21 ms 1332 KB Output is correct
2 Correct 17 ms 1748 KB Output is correct
3 Correct 16 ms 1536 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 1 ms 340 KB Output is correct
4 Correct 1 ms 340 KB Output is correct
5 Correct 21 ms 1416 KB Output is correct
6 Correct 19 ms 1868 KB Output is correct
7 Correct 20 ms 1868 KB Output is correct
8 Correct 21 ms 1332 KB Output is correct
9 Correct 17 ms 1748 KB Output is correct
10 Correct 16 ms 1536 KB Output is correct
11 Correct 6 ms 596 KB Output is correct
12 Correct 15 ms 1620 KB Output is correct
13 Correct 17 ms 1584 KB Output is correct
14 Correct 15 ms 1236 KB Output is correct
15 Correct 27 ms 2180 KB Output is correct
16 Correct 15 ms 1832 KB Output is correct
17 Correct 7 ms 1152 KB Output is correct