NC214452. 砍竹子
描述
输入描述
输入共n+1行。
第一行两个正整数代表竹林大小。
接下来n行,每行m个正整数,代表每颗竹子的初始高度。
输出描述
输出共一行一个整数代表答案
示例1
输入:
2 2 7 29 13 6
输出:
3
说明:
C(gcc 7.5.0) 解法, 执行用时: 116ms, 内存消耗: 5000K, 提交时间: 2022-11-13 20:42:04
#include<stdio.h> int main(void) { int m,n; int a,i; scanf("%d%d",&n,&m); scanf("%d",&a); for(i=1;i<n*m;i++) { int b; scanf("%d",&b); while(a!=b) { if(a>b)a/=2; else b/=2; } } printf("%d",a); }
C 解法, 执行用时: 120ms, 内存消耗: 4240K, 提交时间: 2023-03-25 21:49:55
#include<stdio.h> int main() { int a[10000005]; int n, m, t; scanf("%d %d", &n, &m); scanf("%d", &t); for (int i = 2; i <= n * m; i++) { scanf("%d", &a[i]); while (t != a[i]) { if (t > a[i]) t /= 2; else a[i] /= 2; } } printf("%d\n", t); return 0; }
C++ 解法, 执行用时: 247ms, 内存消耗: 416K, 提交时间: 2021-10-10 21:13:18
#include<bits/stdc++.h> using namespace std; const int mod=1000010; int main(){ int n,m,a; cin>>n>>m; cin>>a; for(int i=1;i<n*m;i++){ int b; cin>>b; while(a!=b){ if(a>b){ a/=2; } else b/=2; } } cout<<a; return 0; }