Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- #pragma GCC optimize ("O3")
- #pragma GCC optimize ("Ofast")
- #pragma GCC optimize ("unroll-loops")
- #define I first
- #define II second
- #define ver1 v*2+1
- #define ver2 ver1+1
- #define tm (tl+tr)/2
- #define all(v) v.begin(),v.end()
- #define pairrev(v) swap(v.first,v.second)
- #define pairprint(v) cout<<v.first<<' '<<v.second<<endl;
- #define accelerate ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0)
- using namespace std;
- typedef int ll;
- typedef long double ld;
- typedef pair<ll,ll> pairll;
- typedef unsigned long long ull;
- const ll DIM = 101;
- const ll MOD = 1e9+7;
- int main(){
- ll t;
- scanf("%d", &t);
- while(t --){
- ll n;
- scanf("%d", &n);
- double a[n+1];
- for (ll i=1; i<=n; i++) scanf("%lf", &a[i]);
- ll ans = n;
- if (n < 3) ans = 0;
- for (ll i=1; i<n; i++){
- for (ll j=i+1; j<=n; j++){
- ll cnt = 0;
- long double d = (a[j] - a[i]) / ((ld)(j - i));
- long double first = a[i] - ((ld)(i-1)) * ((a[j] - a[i]) / ((ld)(j - i)));
- for (ll k=1; k<=n; k++){
- if (first + ((ld)(k-1))*d != a[k]) cnt ++;
- }
- ans = min(ans, cnt);
- if (ans == 0) break;
- }
- if (ans == 0) break;
- }
- cerr << "////";
- printf("%d\n", ans);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment